第一种方法:列表解析
# 1.5.如何根据字典中值的大小,对字典中的项进行排序from random import randintd = {k: randint(60,100) for k in ‘abcdefg‘}print(d)#第一种方法:使用列表解析或者zip()函数,把字典的keys和values反转过来List1 = [(v,k) for k,v in d.items()]#或者使用zip()函数# List2 = List(zip(d.values(),d.keys()))print(List1)List1 = sorted(List1,reverse=True)print(List1)
第二种使用sorted
# 1.5.如何根据字典中值的大小,对字典中的项进行排序from random import randintd = {k: randint(60,d.keys()))List1 = sorted(List1,reverse=True)#第二种方法:使用sorted排序p = sorted(d.items(),key=lambda item:item[1],reverse=True)print(p) #[(‘a‘,97),(‘b‘,93),(‘d‘,(‘e‘,92),(‘f‘,76),(‘c‘,66),(‘g‘,61)]#对分数添加一个排名d = {k:(i,v) for i,(k,v) in enumerate(p,1)}print(d) #{‘g‘: (1,‘d‘: (2,‘f‘: (3,91),‘c‘: (4,79),‘a‘: (5,78),‘e‘: (6,67),‘b‘: (7,64)}1.6.如何统计序列中元素的频度
# 1.6如何统计序列中元素的频度from random import randintfrom collections import Counterdata = [randint(1,5) for _ in range(1,20)]print(data) #[5,2,1,5,3,4,5]#计算频度最高的是三个数c = Counter(data)print(c.most_common(3)) #[(1,5),(3,4),(2,4)]1.7.如何快速找到多个字典中的公共键
# 1.7.如何快速找到多个字典中的公共键from random import randint,samplefrom functools import reduced1 = {k:randint(1,4) for k in sample(‘abcdefgh‘,randint(3,6))}d2 = {k:randint(1,6))}d3 = {k:randint(1,6))}#1.使用字典的keys()方法,得到一个字典keys的集合#2.使用map函数,得到每个字典keys的集合#3.使用reduce,取所有字典keys集合的交集dl = [d1,d2,d3]#找到三个字典中相同的keysresult = reduce(lambda a,b: a & b,map(dict.keys,dl))print(result)1.8.如何让字典保持有序
# 1.8.如何让字典保持有序from collections import OrderedDictfrom itertools import isliced = OrderedDict()d[‘e‘] = 5d[‘d‘] = 4d[‘c‘] = 3d[‘b‘] = 2d[‘a‘] = 1print(d) #OrderedDict([(‘e‘,3),2),(‘a‘,1)])#OrderedDict字典,在迭代 *** 作时,它会保持元素被插入时的顺序def query_by_order(d,a,b =None): if b is None: b = a + 1 return List(islice(d,b))#第五个keyres1 = query_by_order(d,4)print(res1) #[‘a‘]#第二个和第三个keyres2 = query_by_order(d,3)print(res2) #[‘d‘,‘c‘]总结
以上是内存溢出为你收集整理的7.python3实用编程技巧进阶(二)全部内容,希望文章能够帮你解决7.python3实用编程技巧进阶(二)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)