一.字典相关函数
增
方法一
1 dic = {}
2 dic["a"] = "一表人才,除了帅气的皮囊之外,一无所有"
3 dic['b'] = "渣男"
4 dic["c"] = "抠脚老汉"
5 print(dic)#{'a': '一表人才,除了帅气的皮囊之外,一无所有', 'b': '渣男', 'c': '抠脚老汉'}
方法二
fromkeys() 使用一组键和默认值创建字典{不推荐:创建的字典值相同}
1 lst = ["a","b","c"]
2 dic = {}.fromkeys(lst,None)
3 print(dic)#{'a': None, 'b': None, 'c': None}
删
(1)pop 通过键去删除键值对 (若没有该键可设置默认值,预防报错)
1 dic={'a':1,'b':2,'c':3,'d':4,'e':5,'f':6}
2 res = dic.pop('a')
3 print(res)#1
4 print(dic)#{'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}
5 #res = dic.pop('z') error 报错
6 res = dic.pop('z','没有这个键')#没有这个键
7 print(res)#{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}
(2)popitem 删除最后一个键值对
1 dic={'a':1,'b':2,'c':3,'d':4,'e':5,'f':6}
2 res = dic.popitem()
3 print(res) #('f', 6)
4 print(dic) #{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
(3)clear 清空字典
1 dic={'a':1,'b':2,'c':3,'d':4,'e':5,'f':6}
2 res = dic.clear()
3 print(res) #None
4 print(dic) #{}
改
update() 批量更新(有该键就更新,没该键就添加)
方法一
1 dic={'a':1,'b':2,'c':3,'d':4,'e':5,'f':6}
2 dic_new = {'a':111,'e':555,'b':222,'z':999,'h':888}
3 dic.update(dic_new)
4 print(dic) #{'a': 111, 'b': 222, 'c': 3, 'd': 4, 'e': 555, 'f': 6, 'z': 999, 'h': 888}
方法二
1 dic={'a':1,'b':2,'c':3,'d':4,'e':5,'f':6}
2 dic.update('a'= 111,'e'= 555,'b'=222,'z'=999,'h'=888)
3 print(dic)#{'a': 111, 'b': 222, 'c': 3, 'd': 4, 'e': 555, 'f': 6, 'z': 999, 'h': 888}
查
get 通过键获取值(若没有该键可设置默认值,预防报错)
1 dic={'a':1,'b':2,'c':3,'d':4,'e':5,'f':6}
2 res = dic.get('a')
3 print(res)#1
4 res = dic.get('z')
5 print(res)#None
6 res = dic.get('z',没有这个键)
7 print(res)#没有这个键
重要***
(1)keys 将字典的键组成新的可迭代对象
1 dic={'a':1,'b':2,'c':3,'d':4,'e':5,'f':6}
2 res = dic.keys()
3 print(res)#dict_keys(['a', 'b', 'c', 'd', 'e', 'f'])
(2)values 将字典中的值组成新的可迭代对象
1 dic={'a':1,'b':2,'c':3,'d':4,'e':5,'f':6}
2 res = dic.values()
3 print(res)#dict_values([1, 2, 3, 4, 5, 6])
(3)items 将字典的键值对凑成一个个元组,组成新的可迭代对象
1 dic={'a':1,'b':2,'c':3,'d':4,'e':5,'f':6}
2 res = dic.items()
3 print(res)#dict_items([('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5), ('f', 6)])
二.集合的相关函数和操作
(1)intersection 交集 简写 &
1 set1=(1,2,3,4,5) 2 set2=(6,7,8,9,5) 3 res = set1.intersection(set2) 4 print(res)#{5} 5 res = set1 & set2 6 print(res)#{5}
(2)difference 差集 简写 -
1 set1= {1,2,3,4,5} 2 set2= {6,7,8,9,5} 3 res = set1.difference(set2) 4 print(res)#{1, 2, 3, 4} 5 res = set1 - set2 6 print(res)#{1, 2, 3, 4}
(3)union 并集 简写 |
1 set1= {1,2,3,4,5} 2 set2= {6,7,8,9,5} 3 res = set1.union(set2) 4 print(res)#{1, 2, 3, 4, 5, 6, 7, 8, 9} 5 res = set1 | set2 6 print(res)#{1, 2, 3, 4, 5, 6, 7, 8, 9}
(4)symmetric_difference 对称差集 (补集情况涵盖在其中) 简写 ^
1 set1= {1,2,3,4,5} 2 set2= {6,7,8,9,5} 3 res = set1.symmetric_difference(set2) 4 print(res)#{1, 2, 3, 4, 6, 7, 8, 9} 5 res = set1 ^ set2 6 print(res)#{1, 2, 3, 4, 6, 7, 8, 9}
(5)issubset 判断是否是子集 简写 <
1 set1= {1,2,3} 2 set2= {1,2,3,4,5,6} 3 res = set1.issubset(set2) 4 print(res)#True 5 res = set1 < set2 6 print(res)#True
(6)issuperset 判断是否是父集 简写 >
1 set1= {1,2,3} 2 set2= {1,2,3,4,5,6} 3 res = set2.issuperset(set1) 4 print(res)#True 5 res = set2 > set1 6 print(res)#True
(7)isdisjoint 检测两集合是否不相交 不相交 True 相交False
1 set1= {1,2,3} 2 set2= {1,2,3,4,5,6} 3 res = set2.isdisjoint(set1) 4 print(res)#False 5 #相交返回False 6 #不想交返回True 7 set1= {7,8,9} 8 set2= {1,2,3,4,5,6} 9 res = set1.isdisjoint(set2) 10 print(res)#True
集合相关函数
增
(8)add 向集合中添加数据 (一次加一个)
1 set={'a','b','c'} 2 set.add('e') 3 print(set)#{'e', 'c', 'b', 'a'}
(9)update 迭代着增加 (一次加一堆)
set={'a','b','c'} lst = [1,2,3,4,5,6] set.update(lst) print(set)#{1, 2, 3, 4, 5, 6, 'c', 'b', 'a'}
删
(10)clear 清空集合
1 set={'a','b','c'} 2 set.clear() 3 print(set)#set()
(11)pop 随机删除集合中的一个数据
1 set={'a','b','c'} 2 set.pop() 3 print(set)#随机删除,结果不定
(12)remove 删除集合中指定的值(不存在则报错)(了解)
1 set={'a','b','c'} 2 set.remove('a') 3 print(set)#{'b','c'} 4 5 set={'a','b','c'} 6 set.remove('f') 7 print(set)#error 报错
(13)discard 删除集合中指定的值(不存在的不删除 推荐使用)
1 set={'a','b','c'} 2 set.discard('a') 3 print(set)#{'b', 'c'} 4 5 set={'a','b','c'} 6 set.discard('f') 7 print(set)#{'a','b', 'c'} 不会报错
冰冻集合 frozenset
frozenset 可强转容器类型数据变为冰冻集合
冰冻集合一旦创建,不能在进行任何修改,只能做交叉并补操作
1 lst1 = ["lzh",88,"男性","傻逼"] 2 fz1 = frozenset(lst1) 3 print(fz1 , type(fz1))#frozenset({88, 'lzh', '傻逼', '男性'}) <class 'frozenset'> 依旧无序
1 lst2 = ("lzh","地址:bj","买一辆特斯拉9.9包邮") 2 fz2 = frozenset(lst2) 3 print(fz2 , type(fz2))#frozenset({'lzh', '地址:bj', '买一辆特斯拉9.9包邮'}) <class 'frozenset'>
不能够在冰冻集合当中添加或者删除元素
1 lst2 = ("lzh","地址:bj","买一辆特斯拉9.9包邮") 2 fz2 = frozenset(lst2) 3 fz2.add(123) #error 报错 冰冻集合不可添加或删除元素
只能交差并补
1 lst2 = ("lzh","地址:bj","买一辆特斯拉9.9包邮") 2 fz2 = frozenset(lst2) 3 lst1 = ["lzh",88,"男性","傻逼"] 4 fz1 = frozenset(lst1) 5 print( fz1 & fz2 )#frozenset({'lzh'}) 6 print( fz1 - fz2 )#frozenset({88, '傻逼', '男性'})