目录
1. 元组
1.1 元组的创建
1.1.1 通过()创建
1.1.2 tuple()
1.1.3 生成器推导式创建元组
1.1.4 zip()
1.2 访问元组元素
1.2.1 通过 [] 访问
1.2.2 排序
2. 字典
2.1 简介
2.2 字典的创建
2.2.1 通过 {} 创建字典对象
2.2.2 dict()
2.2.3 zip()
2.2.4 fromkeys 创建值为空的字典
2.3 访问字典元素
2.3.1 通过 [键] 获得“值”
2.3.2 get()
2.3.3 items()
2.3.4 keys()、values()
2.3.5 in
2.3 添加字典元素
2.3.1 新增“键值对”
2.3.2 update()
2.4 删除字典元素
2.5 序列解包
3. 集合
3.1 集合的创建和增删
3.1.1 使用 {} 创建集合对象,并使用 add() 添加元素
3.1.2 set()
3.1.3 remove() clear()
3.2 集合相关 *** 作
3.2.1 并集
3.2.2 交集
3.2.3 差集
1. 元组 1.1 元组的创建 1.1.1 通过()创建
注:小括号可以省略。若元组只有一个元素,则必须后面加逗号,如 (1,)。
1.1.2 tuple()tuple()可以接收列表、字符串、其他序列类型、迭代器等生成元组。如:
a = tuple("abc") ==> a = ('a','b','c')
b = tuple(range(3)) ==> b = (0, 1, 2)
c = tuple([2,3,4]) ==> c = (2, 3, 4)
生成器推导式生成的不是列表也不是元组,而是一个生成器对象,但可以转化成列表或者元组。
注:生成器对象的元素访问结束后,如果需要重新访问其中的元素,必须重新创建该生成器对象。
>>> s = (x*2 for x in range(5)) >>> tuple(s) (0, 2, 4, 6, 8) >>> list(s) []1.1.4 zip()
zip(列表1,列表2,...) 将多个列表对应位置的元素组合成为元组,并返回这个zip 对象。
>>> a = [10,20,30] >>> b = [40,50,60] >>> c = [70,80,90] >>> d = zip(a,b,c) >>> tuple(d) ((10, 40, 70), (20, 50, 80), (30, 60, 90))1.2 访问元组元素 1.2.1 通过 [] 访问
注:元组的元素不能修改。
元组的切片 *** 作与列表类似,只不过返回的仍然是元组对象。
1.2.2 排序只能使用内置函数 sorted(tupleObj) 对元组排序,并生成新的列表对象。
2. 字典 2.1 简介1. 字典是“键值对”的无序可变序列,字典中的每个元素都是一个“键值对”,包含:“键对象”和“值对象”。可以通过“键对象”实现快速获取、删除、更新对应的“值对象”。
2. “键”是任意的不可变数据,如:整数、浮点数、字符串、元组。但列表、字典、集合等可变对象,不能作为“键”。
3. “键”不可重复。
4. “值”可以是任意的数据,并且可重复。
2.2 字典的创建 2.2.1 通过 {} 创建字典对象如:a = {'name':'老白' , 'age':26 , 'job':'waiter'}
2.2.2 dict()>>> b = dict(name='老白', age=26 , job='waiter') >>> c = dict([("name","秀才"),("age",25)]) >>> c {'name': '秀才', 'age': 25}2.2.3 zip()
>>> k = ['name','age','job'] >>> v = ['大嘴',25,'cook'] >>> d = dict(zip(k,v)) >>> d {'name': '大嘴', 'age': 25, 'job': 'cook'}2.2.4 fromkeys 创建值为空的字典
>>> a = dict.fromkeys(['name','age','job']) >>> a {'name': None, 'age': None, 'job': None}2.3 访问字典元素 2.3.1 通过 [键] 获得“值”
>>> a = {'name':'老白' , 'age':26 , 'job':'waiter'} >>> a['name'] '老白' >>> a['gender'] Traceback (most recent call last): File "2.3.2 get()", line 1, in KeyError: 'gender'
优点:指定键不存在,返回None;指定键不存在时,可以设定默认返回的对象。
>>> a = {'name':'老白' , 'age':26 , 'job':'waiter'} >>> a.get('name') '老白' >>> a.get('gender','male') 'male'2.3.3 items()
列出所有的键值对。
>>> a = {'name':'老白' , 'age':26 , 'job':'waiter'} >>> a.items() dict_items([('name', '老白'), ('age', 26), ('job', 'waiter')])2.3.4 keys()、values()
列出所有的键、值。
>>> a = {'name':'老白' , 'age':26 , 'job':'waiter'} >>> a.keys() dict_keys(['name', 'age', 'job']) >>> a.values() dict_values(['老白', 26, 'waiter'])2.3.5 in
检测一个“键”是否在字典中。
2.3 添加字典元素 2.3.1 新增“键值对”如果“键”已经存在,则覆盖旧的键值对;如果“键”不存在,则新增“键值对”。
>>>a = {'name':'老白','age':26,'job':'waiter'} >>> a['address']='七侠镇' >>> a['age']=26 >>> a {'name': '老白', 'age': 26, 'job': 'waiter', 'address': '七侠镇'}2.3.2 update()
将新字典中所有键值对全部添加到旧字典对象上,若key 已存在,则直接覆盖。
>>> a = {'name':'老白','age':26,'job':'waiter'} >>> b = {'name':'秀才','salary':1000,'gender':'male'} >>> a.update(b) >>> a {'name': '秀才', 'age': 26, 'job': 'waiter', 'salary': 1000, 'gender': 'male'}2.4 删除字典元素
del:如 del a['name'] 或 del(a['name'])。
clear():删除所有键值对。
pop():删除指定键值对,并返回对应的“值对象”:如 b = a.pop('age') ==> b = 26。
popitem() ::随机删除和返回该键值对。字典是“无序可变序列”,popitem d出随机的项,若需一个接一个地移除并处理项,该方法非常有效。
2.5 序列解包序列解包可用于元组、列表、字典,实现对多个变量赋值。
>>> x,y,z=(20,30,10) >>> x 20 >>> y 30 >>> z 10 >>> (a,b,c)=(9,8,10) >>> a 9 >>> [a,b,c]=[10,20,30] >>> a 10 >>> b 20
注:序列解包用于字典时,默认是对“键”进行 *** 作; 如果需要对键值对 *** 作,则需要使用 items();如果需要对“值”进行 *** 作,则需要使用 values();
>>> s = {'name':'老白' , 'age':26 , 'job':'waiter'} >>> name,age,job=s #默认对键进行 *** 作 >>> name 'name' >>> name,age,job=s.items() #对键值对进行 *** 作 >>> name ('name', '老白') >>> name,age,job=s.values() #对值进行 *** 作 >>> name '老白'3. 集合
集合无序可变,元素不能重复。集合底层由字典实现,集合的所有元素都是字典中的“键对象”,因此是不能重复且唯一的。
3.1 集合的创建和增删 3.1.1 使用 {} 创建集合对象,并使用 add() 添加元素>>> a = {3,5,7} >>> a {3, 5, 7} >>> a.add(9) >>> a {9, 3, 5, 7}3.1.2 set()
将列表、元组等可迭代对象转成集合,若存在重复数据,则只保留一个。
>>> a = ['a','b','c','b'] >>> b = set(a) >>> b {'b', 'a', 'c'}3.1.3 remove() clear()
remove()删除指定元素;clear()清空整个集合。
>>> a = {10,20,30,40,50} >>> a.remove(20) >>> a {10, 50, 30}3.2 集合相关 *** 作
a = {1,3,'zzz'}
b = {'he','it',zzz'}
3.2.1 并集a|b 或 a.union(b) ==> {1, 3, 'zzz, 'he', 'it'}
3.2.2 交集a&b 或 a.intersection(b) ==> {'zzz'}
3.2.3 差集a-b 或 a.difference(b) ==> {1, 3}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)