首页 / PYTHON / python 关于字典的排序
python 关于字典的排序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python 关于字典的排序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2491字,纯文字阅读大概需要4分钟。
内容图文
![python 关于字典的排序](/upload/InfoBanner/zyjiaocheng/710/6b2034ea1af54862b92ac82a507f95c5.jpg)
转载自https://blog.csdn.net/ustbbsy/article/details/79637594
平常学习了字典(dict),感觉还行。但一到用的时候,就感觉模棱两可。
于是就总结了字典的常见用法,以后可熟记于心。
- - - - - - - - - - - - - - -
更新日记:2019-05-21
通一表述:字典有两个参数,key, value,下面所描述,键:key,值:value
欢迎批评指正!
- - - - - - - - - - - - - - - - 下面是正文 -- - - -- - - -- - - - - - - - -- -
创建一个字典
dict1={'a':2,'b':3,'c':8,'d':4}
?
1、分别取键、值
取字典的所有键,所有的值,利用dict1.keys(),dict1.vaules(),
由于键,值有很多个,所以要加s,另外注意这里要加括号,这样的小细节不注意,很容易犯错。
print(dict1.values(),dict1.keys())
?
结果:
dict_values([4, 2, 8, 3]) dict_keys(['d', 'a', 'c', 'b'])
?
可以看出,返回的是列表的形式
2、同时取键、值
同时取字典的键、值,dict1.items(),这里同样加s和括号
print(dict1.items())
?
结果:
dict_items([('d', 4), ('a', 2), ('c', 8), ('b', 3)])
?
可以看出,返回的结果是元组组成的列表
也就是说,通过dict1.items()这个函数,把字典形式的键、值,存在了一个元组内。
3、排序
3.1 sorted
先看一下,直接用sorted()排序的情况。
- dict1={'a':2,'e':3,'f':8,'d':4}
- dict2 = sorted(dict1)
- print(dict2)
结果:
['a', 'd', 'e', 'f']
?
sorted()默认是对字典的键,从小到大进行排序
3.2 、对键反向排序
对键进行反向(从大到小)排序
- dict1={'a':2,'e':3,'f':8,'d':4}
- dict2 = sorted(dict1,reverse=True)
- print(dict2)
- 结果:['f', 'e', 'd', 'a']
像这种对键进行排序,往往是为了得到 值(value)
拿到键最大,对应的值,如:
print(dict1[dict2[0]])#结果为8
?
当然我们也可以先拿到所有的key,然后再对key排序
- dict1={'a':2,'e':3,'f':8,'d':4}
- list1= sorted(dict1.keys(),reverse=True)
- print(list1) # 结果:['f', 'e', 'd', 'a']
3.3、对值排序
同样,用dict1.values()得到所有的values,然后对value排序
- dict1={'a':2,'e':3,'f':8,'d':4}
- list1= sorted(dict1.values())
- print(list1) #结果:[2, 3, 4, 8]
设值reverse=True 进行反向排序
也可以用dict1.items(),得到包含键,值的元组
由于迭代对象是元组,返回值自然是元组组成的列表
这里对排序的规则进行了定义,x指元组,x[1]是值,x[0]是键
- dict1={'a':2,'e':3,'f':8,'d':4}
- list1= sorted(dict1.items(),key=lambda x:x[1])
- print(list1)
结果:
[('a', 2), ('e', 3), ('d', 4), ('f', 8)]
?
对键进行排序:
- dict1={'a':2,'e':3,'f':8,'d':4}
- list1= sorted(dict1.items(),key=lambda x:x[0])
- print(list1)
结果:
[('a', 2), ('d', 4), ('e', 3), ('f', 8)]
?
4 itemgetter
- from operator import itemgetter
- d = {"a":8,"b":4,"c":12}
- print(sorted(d.items(),key=itemgetter(0),reverse=True))
- print(sorted(d.items(),key=itemgetter(1),reverse=True))
结果:
- [('c', 12), ('b', 4), ('a', 8)]
- [('c', 12), ('a', 8), ('b', 4)]
itemgetter(0),获取key
itemgetter(1),获取value
内容总结
以上是互联网集市为您收集整理的python 关于字典的排序全部内容,希望文章能够帮你解决python 关于字典的排序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。