Python中给字典排序的四种方法

 更新时间:2023年08月25日 15:10:55   作者:PythonFun  
我们经常在计算机等级考试中遇到词频排序的问题,我们一般先通过生成字典的方法,统计词的频次,然后给字典排序,那么如何快速地给字典按照键值进行排序呢,本文主要介绍了Python中给字典排序的四种方法,感兴趣的可以了解一下

我们经常在计算机等级考试中遇到词频排序的问题,我们一般先通过生成字典的方法,统计词的频次,然后给字典排序。那么如何快速地给字典按照键值进行排序呢?下面介绍三种方法。第一种方法相对比较常见,但是第二种方法你可能第一次见,第三种方法是比较麻烦的一种,你可以参考一下。

例:有下面的列表dic={'a': 4, 'b': 3, 'c': 2, 'd': 1},如何实现字典的升序排列呢?

第一种:利用自定义函数lambda

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

这里,通过dic.items()获取由字典键名和键值组成的元组列表,然后通过自定义函数,获取元组的第2个元素,作为排序的依据即key, 默认是按照升序排列,如果是降序排列可以把reverse设为True,即:

>>> dic={'a': 4, 'b': 3, 'c': 2, 'd': 1}
>>> sorted(dic.items(), key=lambda x: x[1],reverse=True)
{'a': 4, 'b': 3, 'c': 2, 'd': 1}

第二种:利用operator的方法

>>> import operator
>>> sorted(xs.items(), key=operator.itemgetter(1))
[('d', 1), ('c', 2), ('b', 3), ('a', 4)]

operator. itemgetter(item)
operator. itemgetter(*items)

功能是返回一个可调用对象,该对象可以使用操作__getitem__()方法从自身的操作中捕获item。如果制定了多个items,返回一个由查询值组成的元组。例如:运行f =itemgetter(2),然后调用f(r),返回r[2]。这里通过operator获得了dic.items()中的键值。注意operator是内置的包,无需安装。

第三种方法:列表推导式法

>>>  dic={'a': 4, 'b': 3, 'c': 2, 'd': 1}
>>> tup=[(x[1],x[0]) for x in dic.items()]#元素互换位置
>>> sorted(tup) #排序
[(1, 'd'), (2, 'c'), (3, 'b'), (4, 'a')]
>>> [(x[1],x[0]) for x in dic.items()]
>>> [(x[1],x[0]) for x in tup] #换回原来的位置
>>> [('d', 1), ('c', 2), ('b', 3), ('a', 4)]

用列表推导式,交换元组中元素的位置,排序后再交换回来,这种方法有点儿麻烦,但是逻辑清楚,适合新手。还有哪些好的方法,欢迎大家提出来,一起来交流。

第四种方法:用Counter的方法

from collections import Counter
dic={'a': 4, 'b': 3, 'c': 2, 'd': 1}
count = Counter(dic)
print(list(count.items()))

总结:以上四种方法就是常见的排序方法,供大家参考学习。

到此这篇关于Python中给字典排序的四种方法的文章就介绍到这了,更多相关Python 字典排序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python 程序通过可执行文件部署方式

    Python 程序通过可执行文件部署方式

    这篇文章主要介绍了Python 程序通过可执行文件部署方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • python中queue.Queue之task_done的用法

    python中queue.Queue之task_done的用法

    这篇文章主要介绍了python中queue.Queue之task_done的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • python字典键值对的添加和遍历方法

    python字典键值对的添加和遍历方法

    下面小编就为大家带来一篇python字典键值对的添加和遍历方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • 读取nii或nii.gz文件中的信息即输出图像操作

    读取nii或nii.gz文件中的信息即输出图像操作

    这篇文章主要介绍了读取nii或nii.gz文件中的信息即输出图像操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • 详解Python+Turtle绘制奥运标志的实现

    详解Python+Turtle绘制奥运标志的实现

    turtle库是Python标准库之一,是入门级的图形绘制函数库。本文就将利用turtle库绘制一个奥运标志—奥运五环,感兴趣的可以学习一下
    2022-02-02
  • Biblibili视频投稿接口分析并以Python实现自动投稿功能

    Biblibili视频投稿接口分析并以Python实现自动投稿功能

    这篇文章主要介绍了Biblibili视频投稿接口分析并以Python实现自动投稿功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • PyCharm License Activation激活码失效问题的解决方法(图文详解)

    PyCharm License Activation激活码失效问题的解决方法(图文详解)

    这篇文章主要介绍了PyCharm License Activation激活码失效问题的解决方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • Python基于xlutils修改表格内容过程解析

    Python基于xlutils修改表格内容过程解析

    这篇文章主要介绍了Python基于xlutils修改表格内容过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • 用pickle存储Python的原生对象方法

    用pickle存储Python的原生对象方法

    下面小编就为大家带来一篇用pickle存储Python的原生对象方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • 基于Python制作B站视频下载小工具

    基于Python制作B站视频下载小工具

    这篇文章主要为大家介绍一个小工具,可以用于B站视频的下载,只需要输入对应视频的网页地址就可以进行下载到本地了。感兴趣的可以了解一下
    2022-01-01

最新评论