dict 和 set 的15个使用例子
from heapq import nlargest
from collections import defaultdict,ChainMap
a = {'a':1,'b':2}
a.update({'b':4,'c':5,'e':9})
a.update([('b',4),('c',5),('e',9)])
a.update([('b',4),('c',5),('e',9)],fi1=10)
print(f'更新后的值是:{a}')
b = {'a':1,'b':2}
bs = b.setdefault('c',3)
print(f'添加的值:{bs}')
print(f'C不存在,所以会添加进去:{b}')
bsa = b.setdefault('c',53)
print(f'添加的值:{bsa}')
print(f'C已经存在,所以不会添加进去:{b}')
def f(d:dict)->dict:
return {**d}
cb = f({'a':1,'b':2})
print(f'字典取并集后:{cb}')
def merge(d1,d2):
return {**d1,**d2}
cd = merge({'a':1,'v':32,'t':43},{'y':43})
print(f'字典取并集后:{cd}')
def difference(d1,d2):
return dict([(k,v) for k,v in d1.items() if k not in d2])
da = difference({'a':1,'b':2,'c':3},{'b':2})
print(f'字典差的结果:{da}')
def sort_by_key(d):
return sorted(d.items(),key=lambda x: x[0])
ea = sort_by_key({'a':3,'b':1,'c':2,'h':6,'d':12})
print(f'按键进行排序:{ea}')
def sort_by_value(d):
return sorted(d.items(),key=lambda x: x[1])
fa = sort_by_value({'a':3,'b':1,'c':2,'h':6,'d':12})
print(f'按值进行排序:{fa}')
def max_key(f):
if len(f) ==0:
return []
max_key = max(f.keys())
return (max_key,f[max_key])
ja = max_key({'a':3,'b':1,'axks':2,'h':6,'shmaur':12})
print(f'最大键筛选:{ja}')
def max_keys(d):
if len(d) ==0:
return []
max_val = max(d.values())
return [(key,max_val) for key in d if d[key]==max_val]
ka = max_keys({'a':3,'b':1,'axks':2,'h':6,'shmaur':12})
print(f'最大值筛选:{ka}')
def max_min(ms):
return (max(ms),min(ms))
la = max_min({1,2,3,5,6,9,1,50})
print(f'最大值与最小值:{la}')
def single(str):
return len(set(str)) == len(str)
qa = single('love_shmaur')
print(f' 是否是单字符串:{qa}')
qb = single('shmaur')
print(f' 是否是单字符串:{qb}')
qc = single('love shmaur you _ me')
print(f' 是否是单字符串:{qc}')
qd = single('love_python')
print(f' 是否是单字符串:{qd}')
def longer(s1,s2):
return max(s1,s2,key=lambda x: len(x))
wa = longer({1,3,5,7},{1,5,7})
print(f' 最长的集合:{wa}')
def max_overlap(lst1,lst2):
overlap = set(lst1).intersection(lst2)
ox = [(x,min(lst1.count(x),lst2.count(x))) for x in overlap]
return max(ox,key=lambda x: x[1])
ra = max_overlap([1,2,2,2,3,3],[2,2,3,2,2,3])
print(f' 交集中的列表数组中出现次数最多的对象:{ra}')
def topn_dict(d,nb):
return nlargest(nb,d,key=lambda x: d[x])
ta = topn_dict({'a': 10, 'b': 8, 'c': 9,'d': 10,'t':15}, 3)
print(f' 输出前三的字典中最大的键:{ta}')
ya = {}
yalst = [(1,'apple'),(2,'orange'),(1,'compute')]
for k,v in yalst:
if k not in ya:
ya[k]=[]
ya[k].append(v)
print(ya)
ya2 = defaultdict(list)
for k,v in yalst:
ya2[k].append(v)
print(ya2)
dic1 = {'x': 1, 'y': 2 }
dic2 = {'y': 3, 'z': 4 }
mergedL = {**dic1, **dic2}
print(mergedL)
mergedL['x'] = 20
print(mergedL)
print(dic1)
chain = ChainMap(dic1,dic2)
print(chain)
chain['x'] = 80
print(chain)
print(dic1)