7.20_python_lx_day8

一.字典相关函数

方法一

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, '傻逼', '男性'})

 

posted @ 2020-07-20 23:46  Magicianlx  阅读(184)  评论(0编辑  收藏  举报