列表、元组、集合、字典
列表、元组、集合、字典
列表
列表(list)是一种有序的数据集合,可以通过索引(下标)访问到每一个列表的元素。
列表的常用方法
- append():默认在列表末尾添加元素
- insert():指定位置插入元素
- remove():删除元素,如果该元素在列表里有多个,只删除第一个找到的
- extend():列表合并
- pop():默认弹出列表末尾的元素
注意点:如果访问越界会报错,所以实际开发中会用len()获取列表长度。列表索引可以是负数,-1表示从倒数第一个开始访问。
Python 3.12.7 (main, Nov 8 2024, 17:55:36) [GCC 14.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> courses = ['C','C++','Linux','Python','Java']
>>> courses
['C', 'C++', 'Linux', 'Python', 'Java']
>>> courses[0]
'C'
>>> courses[1]
'C++'
>>> courses[2]
'Linux'
>>> courses[3]
'Python'
>>> courses[4]
'Java'
>>> courses[5]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>> len(courses)
5
>>> courses.append('Git')
>>> courses
['C', 'C++', 'Linux', 'Python', 'Java', 'Git']
>>> courses[-1]
'Git'
>>> courses[-2]
'Java'
>>> courses[-3]
'Python'
>>> courses.insert(0,'Go')
>>> courses
['Go', 'C', 'C++', 'Linux', 'Python', 'Java', 'Git']
>>> courses.append('Java')
>>> courses
['Go', 'C', 'C++', 'Linux', 'Python', 'Java', 'Git', 'Java']
>>> courses.remove('Java')
>>> courses
['Go', 'C', 'C++', 'Linux', 'Python', 'Git', 'Java']
>>> del courses[-1]
>>> courses
['Go', 'C', 'C++', 'Linux', 'Python', 'Git']
>>> new_courses = ['Ruby','Java','Windows']
>>> courses.extend(new_courses)
>>> courses
['Go', 'C', 'C++', 'Linux', 'Python', 'Git', 'Ruby', 'Java', 'Windows']
>>> courses.pop()
'Windows'
>>> del courses
>>> courses
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'courses' is not defined
>>>
注意:del是python语句,不是BIF(内置函数)。
元组
元组(tuple)是一种特殊的列表,不同点是元组一旦创建就不能修改,类似列表的所有会修改列表内容的操作对于元组都不再适用。
一句话,元组是不可变的。
注意点:元组里的列表是可以变化的。单个元素的元组,元素后面要添加 “,”。
Python 3.12.7 (main, Nov 8 2024, 17:55:36) [GCC 14.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> courses = ('Java','Python','PHP')
>>> courses[0]
'Java'
>>> courses[1]
'Python'
>>> courses[2]
'PHP'
>>> del courses[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object doesn't support item deletion
>>> new_courses = ('Python',['Java','PHP'],'Linux')
>>> new_courses[1].append('Mysql')
>>> new_courses
('Python', ['Java', 'PHP', 'Mysql'], 'Linux')
>>> t = ('C++')
>>> type(t)
<class 'str'>
>>> t = ('C++',)
>>> type(t)
<class 'tuple'>
>>>
拓展:元组可以用特殊的方法改变,后面用到会详细讲解。
集合
集合(set)是一个无序不重复元素的数据集,对比列表首先是无序,不可以使用索引进行顺序的访问,另外一个特点是不能够有重复的数据。因此集合的主要作用是去重。
注意:Python中集合被分为可变与不可变,可变是set(),不可变是frozenset()。这里只演示set(),后面用到会详细讲解frozenset()。
集合的常用操作
- 去重
- add():添加元素
- 集合运算
Python 3.12.7 (main, Nov 8 2024, 17:55:36) [GCC 14.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> courses = set()
>>> type(courses)
<class 'set'>
>>> courses = {'Java','Python','Go','Linux','Java'}
>>> courses
{'Linux', 'Go', 'Java', 'Python'}
>>> 'Linux' in courses
True
>>> 'C' in courses
False
>>> courses.add('C++')
>>> courses
{'Linux', 'Go', 'Java', 'Python', 'C++'}
>>> courses.remove('Python')
>>> 'Python' in courses
False
>>> set1 = {1,2,3,4}
>>> set2 = {3,4,5,6}
>>> set1 | set2
{1, 2, 3, 4, 5, 6}
>>> set1 & set2
{3, 4}
>>> set1 - set2
{1, 2}
>>> set1 ^ set2
{1, 2, 5, 6}
>>>
字典
字典(dict)是无序的键值对集合。字典中的每一个元素都是一个key和一个value的组合,key值在字典中必须是唯一的,因此可以很方便的从字典中使用key获得其对应的value的值。
注意点1:字典的本质是哈希表,字典的key必须为不可变对象,因为Python会通过key去计算存储位置,如果key为可变对象,那计算的哈希值就会不准确,不具备唯一性。
注意点2:在实际开发中我们通过get()方法去访问字典中的元素。因为get()不会报错,使用get()会让我们程序具有健壮性,健壮性对于程序开发来说是至关重要的。
Python 3.12.7 (main, Nov 8 2024, 17:55:36) [GCC 14.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> coursesdict = {1:'Linux',2:'Java',3:'Python'}
>>> coursesdict
{1: 'Linux', 2: 'Java', 3: 'Python'}
>>> coursesdict[1]
'Linux'
>>> coursesdict[2]
'Java'
>>> coursesdict[3]
'Python'
>>> coursesdict[4]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 4
>>> coursesdict.get(1)
'Linux'
>>> coursesdict.get(2)
'Java'
>>> coursesdict.get(3)
'Python'
>>> coursesdict.get(4)
>>> coursesdict[4] = 'Git'
>>> coursesdict
{1: 'Linux', 2: 'Java', 3: 'Python', 4: 'Git'}
>>> coursesdict.keys()
dict_keys([1, 2, 3, 4])
>>> coursesdict.values()
dict_values(['Linux', 'Java', 'Python', 'Git'])
>>> coursesdict.pop(2)
'Java'
>>> coursesdict
{1: 'Linux', 3: 'Python', 4: 'Git'}
>>> exit()
浙公网安备 33010602011771号