字典
#1. 基础操作name ={'zhang':'10','li':'5'}dict(name)#将列表等转换为字典name['zhang']#查询name['zhang']=15#赋值del name['zhang']#删除键值name ={#可多行写法-
'zhang':'10', -
'li':'5' -
} #2. 遍历for key,value in name.items():-
print(key value) #3. 其它操作name.keys()#keyname.values()#所有值set(name.values())#变成集合,内容就唯一name.update(xx)#将其它字典加入到里面name.items()#返回所有键值对,放在list中为一堆元组name.clear()#清空字典name.get('xx','not a value')#查询值,不存在则显示第二个参数list(name.values())#将所有value做成一个列表new = name.copy()#复制name.setdefault('key','value')#值不存在则覆盖,防止报错#4. 查询的键不存在,默认显示0,里面放int默认为0,可以做初始化后, 1当计数器用from collections import defaultdictname = defaultdict(int)#默认值name = defaultdict(lambda:'Huh?')#默认值,也可以是列表,数组name['xx']
集合
#1. 基础操作name = set()#空集合name ={1,2,3}#无序,不允许重复set('abca')#去除重复,变成集合。若填写字典,则只会读取键#2. 集合交互if name &{'a','b'}:#交集运算符,可以查是否在包含其中一种a & b #2个集合的交集d.intersection(b)#同上,显示交集a | b #并集a.union(b)#并集a - b #差集,出现在第一个的,不出现在第二个里的a.difference(b)#差集a ^ b #异或集,找出不同部分a.symmetric_difference(b)a <= b #判断子集,b是否包含a全部内容a.issubset(b)a > b #真子集,b是否包含a,并且有其它内容#3. 迭代for a,b,c in zip(oen,two,three)#对多个序列进行迭代,会在最短用完停止dict(zip(one,two))#将列表做成一个字典list(range(0,3))#4. 推导式,生成器只能用一次,被迭代或者调用就没了name =[number for number in range(1,6)]#显示1-5name =[number for number in range(1,6)if number %2==1]name =[(a,b)for a in range(1,5)for b in range(2,4)]name ={a:b for a in range(1,5)for b in range(2,4)}#字典推导式name ={number for number in range(1,6)}#集合推导式name =(number for number in range(1,6))#生成器推导式,返回生成器对象


