元组
1.定义:tuple1 = ( n1 , n2 , n3 ) 当元组中只有一个元素的时候,在元素后面添加逗号
消除歧义
一个元组一旦被定义完成,则不能做任何修改,只能获取 元组 [ 索引 ]
虽然元组是不可变的,但是如果元组中的元素为列表,该列表是可以修改的
2.删除元组:del 元组
3.tuple( ):将对象转换为元组
4.enumerate ( ):枚举
#print(list(enumerate(list1)))
t1 = (11,22,33,44,55,66,77,88,99)
for i,num in enumerate(t1):
print(i,num)
print(enumerate(t1)) # <enumerate object at 0x00000218F0DE8C60>
字典
1.定义:dict1 = { 键1:值1 , 键2:值2 , 键3:值3}
键可以使用数字、布尔值、元组、字符串等不可变数据类型,但是一般习惯
使用字符串,切记不能使用列表等可变数据类型
每个字典里的key都是唯一的,如果出现了多个相同的key,后面的value会
覆盖之前的value 字典 [ key ] = 值 表示给value重新赋值,如果key不存在,
则表示添加键值对
字典是无序的,有序字典OrderedDict
{ } 表示的是字典,并不是集合
2.获取 字典 [ key ] 如果访问key对应的value,建议使用get,因为如果key不存在,
get不报错,返回None dict1.get( key )
3.修改、添加 字典 [ key ] = 值 表示给value重新赋值,如果key不存在,
则表示添加键值对
4.创建字典
dict ( key = value )
dict ( [ ( key1 , value1 ) , ( key2 , value ) … ] )
dict ( zip (seq1所有的key , seq2所有的value ) ) , seq1和seq2可以是列表,也可以是元组
5.遍历字典
获取key dict1.keys ( )
获取values dict2.values ( )
获取键值对 dict3.items ( )
6.增
update ( ),更新,合并字典,将指定字典中的键值对添加到原字典中
dict1.update ( dict2 ),将dict2中的键值对添加到原字典中
setdefault ( key , default ) 如果default省略,向字典中添加了key : None
如果default未省略,则向字典中添加了key : default
7.删
pop ( key ),根据指定的key删除键值对,返回值为被指定的key对应的value
popitem ( self ) 随机删除一对键值对,返回值为被删除的键值对的元组,( key , value )
del xxx del dict1 [ key ]
clear ( self )
8.改 字典[ key ] = 值
9.查
get , keys ( ) , values ( ) , items ( ) , len ( )
10.其他
copy ( ) , 和列表的使用完全相同,拷贝的是最外层的地址
fromkeys ( seq ) , seq中的元素作为key , value默认为None
fromkeys ( seq , value ) seq中的元素作为key , value可以是任意的数据类型,所有
key的value是相同的
11.字典推导式:{ key : value for循环 if判断 }
集合
1.{ } 为空时表示字典
2.{ } 不为空,其中的元素不是键值对,则表示集合
3.创建一个空集合
set31 = set()
print(set31,type(set31))
set32 = set([])
print(set32)
set33 = set(())
print(set33)
4.创建非空集合【了解】
set32 = set([1,2,3])
print(set32) # {1,2,3}
set33 = set((1,2,3))
print(set33) # {1,2,3}
注意:集合set相当于只存储了字典中的key:无序且唯一
set33 = set({11:1,22:2})
print(set33) # {11,22}
5.增
add ( x ) , 添加,x必须是不可变的数据类型
set1.add([1,2,3]) #TypeError: unhashable type: 'list'
如果添加的是可迭代对象,则会将整个容器添加进去
update ( x ),更新,x必须是可迭代对象,只会将其中的元素添加进去
6.删
remove ( ) , 删除指定的元素
pop ( ) , 随机删除一个元素
discard ( ) , 和remove类似,都是删除指定的元素
但是,如果元素不存在,remove会报错KeyError , discard不会报错
clear ( )
7.查 len ( ) , max ( ) , min ( )
8.集合间的运算
使用运算符:
并集:& , 交集:| , 差集:- , ^
使用系统功能:
并集:s1.union ( s2 ) 交集:s1.intersection ( s2 ) 差集:s1.difference ( s2 )