当前位置:首页 >> 编程语言 >> 【Python 必会技巧】对字典按照键(key)或者值(value)排序,飞利浦mix

【Python 必会技巧】对字典按照键(key)或者值(value)排序,飞利浦mix

0evadmin 编程语言 3
文件名:【Python 必会技巧】对字典按照键(key)或者值(value)排序,飞利浦mix 【Python 必会技巧】对字典按照键(key)或者值(value)排序

先总结一下,分为以下四种情况:

情况一:按照键排序,只输出排序后所有的键情况二:按照值排序,只输出排序后所有的值情况三:按照键排序,同时输出排序后所有的键和对应的值情况四:按照值排序,同时输出排序后所有的键和对应的值 情况一:按照键排序,只输出排序后所有的键

直接使用 sorted() 方法,默认是对字典的键进行排序

>>> dict = {'b': 2, 'a': 1, 'd': 4, 'c': 3}>>> print(sorted(dict))['a', 'b', 'c', 'd']

也可以先用 dict.keys() 取字典的键,然后再使用 sorted() 方法进行排序

>>> dict = {'b': 2, 'a': 1, 'd': 4, 'c': 3}>>> print(sorted(dict.keys()))['a', 'b', 'c', 'd']

以上方法是从小到大排序,如果是从大到小,添加 reverse=True 即可

>>> dict = {'a': 2, 'b': 1, 'c': 4, 'd': 3}>>> print(sorted(dict.keys(), reverse=True))['d', 'c', 'b', 'a'] 情况二:按照值排序,只输出排序后所有的值

先用 dict.values() 取字典的值,然后再使用 sorted() 方法进行排序

>>> dict = {'a': 2, 'b': 1, 'c': 4, 'd': 3}>>> print(sorted(dict.values()))[1, 2, 3, 4]

同理,如果是从大到小排序,添加 reverse=True 即可

>>> dict = {'a': 2, 'b': 1, 'c': 4, 'd': 3}>>> print(sorted(dict.values(), reverse=True))[4, 3, 2, 1] 情况三:按照键排序,同时输出排序后所有的键和对应的值

方法一:dict.items() 方法可以得到包含字典键和值的元组,然后使用匿名函数 lambda,其中 i[0] 表示字典的键

>>> dict = {'a': 2, 'b': 1, 'c': 4, 'd': 3}>>> print(sorted(dict.items(), key=lambda i: i[0]))[('a', 2), ('b', 1), ('c', 4), ('d', 3)]

方法二:使用 operator 模块中的 itemgetter 函数,其中 itemgetter(0) 表示字典的键

>>> from operator import itemgetter>>> dict = {'a': 2, 'b': 1, 'c': 4, 'd': 3}>>> print(sorted(dict.items(), key=itemgetter(0)))[('a', 2), ('b', 1), ('c', 4), ('d', 3)]

itemgetter 函数用于获取对象的哪些维的数据,参数为一些序号,以下举例说明:

>>> import operator>>>>>> a = [1, 2, 3, 4]>>> b = operator.itemgetter(0) # 定义函数b,获取对象的第0个域的值>>> print(b(a))1>>> b = operator.itemgetter(0, 1) # 定义函数b,获取对象的第0个和第1个域的值>>> print(b(a))(1, 2) 情况四:按照值排序,同时输出排序后所有的键和对应的值

方法一:与情况三类似只需要将 i[0] 改成 i[1] 即可

>>> dict = {'a': 2, 'b': 1, 'c': 4, 'd': 3}>>> print(sorted(dict.items(), key=lambda i: i[1]))[('b', 1), ('a', 2), ('d', 3), ('c', 4)]

方法二:与情况三类似只需要将 itemgetter(0) 改成 itemgetter(1) 即可

>>> from operator import itemgetter>>> dict = {'a': 2, 'b': 1, 'c': 4, 'd': 3}>>> print(sorted(dict.items(), key=itemgetter(0)))[('a', 2), ('b', 1), ('c', 4), ('d', 3)]
协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接