Python字典“键”和“值”的排序5种方法
作者:局外人一枚 发布时间:2022-01-13 04:45:42
标签:Python字典,键,值,排序
使用 sorted() 函数
使用 sorted() 函数对字典进行排序,将其转换为元组列表,再按照指定的键或者值进行排序。
按照键排序的示例代码
d = {'apple': 4, 'banana': 2, 'pear': 1, 'orange': 3}
sorted_d = dict(sorted(d.items(), key=lambda x: x[0]))
print(sorted_d)
结果如下:

按照值排序的示例代码
d = {'apple': 4, 'banana': 2, 'pear': 1, 'orange': 3}
sorted_d = dict(sorted(d.items(), key=lambda x: x[1]))
print(sorted_d)
结果如下:

使用 itemgetter() 函数
可以使用 operator 模块的 itemgetter() 函数对字典进行排序,将其转换为元组列表,然后按照指定的键或者值进行排序。
按照键排序的示例代码
from operator import itemgetter
d = {'apple': 4, 'banana': 2, 'pear': 1, 'orange': 3}
sorted_d = dict(sorted(d.items(), key=itemgetter(0)))
print(sorted_d)
结果如下:

按照值排序的示例代码
from operator import itemgetter
d = {'apple': 4, 'banana': 2, 'pear': 1, 'orange': 3}
sorted_d = dict(sorted(d.items(), key=itemgetter(1)))
print(sorted_d)
结果如下:

使用 OrderedDict 类
可以使用 collections 模块的 OrderedDict 类对字典进行排序。OrderedDict 是一个有序的字典,它保留了元素插入的顺序。
按照键排序的示例代码
from collections import OrderedDict
d = {'apple': 4, 'banana': 2, 'pear': 1, 'orange': 3}
sorted_d = OrderedDict(sorted(d.items(), key=lambda x: x[0]))
print(sorted_d)
结果如下:

按照值排序的示例代码
from collections import OrderedDict
d = {'apple': 4, 'banana': 2, 'pear': 1, 'orange': 3}
sorted_d = OrderedDict(sorted(d.items(), key=lambda x: x[1]))
print(sorted_d)
结果如下:

使用 zip() 函数
可以使用 zip() 函数将字典的键和值分别转换为列表,然后按照指定的键或者值进行排序,最后将排序后的键和值重新组成字典。
按照键排序的示例代码
d = {'apple': 4, 'banana': 2, 'pear': 1, 'orange': 3}
keys = list(d.keys())
values = list(d.values())
sorted_keys = sorted(keys)
sorted_values = [d[k] for k in sorted_keys]
sorted_d = dict(zip(sorted_keys, sorted_values))
print(sorted_d)
结果如下:

照值排序的示例代码
d = {'apple': 4, 'banana': 2, 'pear': 1, 'orange': 3}
keys = list(d.keys())
values = list(d.values())
sorted_values = sorted(values)
sorted_keys = [keys[values.index(v)] for v in sorted_values]
sorted_d = dict(zip(sorted_keys, sorted_values))
print(sorted_d)
结果如下:

使用 Pandas 库
可以使用 Pandas 库将字典转换为 DataFrame,然后按照指定的键或者值进行排序,最后将排序后的 DataFrame 转换为字典。
按照键排序的示例代码
import pandas as pd
d = {'apple': 4, 'banana': 2, 'pear': 1, 'orange': 3}
df = pd.DataFrame(list(d.items()), columns=['fruit', 'count'])
sorted_df = df.sort_values('fruit')
sorted_d = dict(zip(sorted_df['fruit'], sorted_df['count']))
print(sorted_d)
结果如下:

按照值排序的示例代码
import pandas as pd
d = {'apple': 4, 'banana': 2, 'pear': 1, 'orange': 3}
df = pd.DataFrame(list(d.items()), columns=['fruit', 'count'])
sorted_df = df.sort_values('count')
sorted_d = dict(zip(sorted_df['fruit'], sorted_df['count']))
print(sorted_d)
结果如下:

来源:https://blog.csdn.net/weixin_42814075/article/details/129724014
猜你喜欢
前言Python 3.7 将于今年夏天发布,Python 3.7 中将会有许多新东西:各种字符集的改进对注释的推迟评估以及对dataclas
MySQL replace函数我们经常用到,下面就为您详细介绍MySQL replace函数的用法,希望对您学习MySQL replace函
公司做了个客户,需要图片生成像alibaba的效果。原来开发的系统都是用Aspjpeg进行缩小图的,现在需要处理图片,当然又想到这个组件。但
使用 Response.Redirect "aspxhome.asp" 转向方法的HTTP Status Code 为3
本文系统的对HTTP Headers进行了简明易懂的阐述,我仅稍作笔记。什么是HTTP HeadersHTTP是“Hypertext Tra
前言最近在写nuxt项目时候每次新建页面都要去新建然后引入各种需要的依赖很是麻烦,所以想写一个脚本自动生成文件 省去手动新建现写下实现方法
非常抱歉,今天早上 6:37~8:15 期间,由于获取网站首页博文列表的 SQL 语句出现突发的查询超时问题,造成访问网站首页时出现 500
1、静态网页与动态比较: 1)静态网页: 优势:A、 对搜索引擎友好,被收录的质量高;B、访问速度快;C、资源(cpu 等)占用少。 劣势:
前言:对于Web开发人员,弹出框和提示框的使用肯定不会陌生,比如常见的表格新增和编辑功能,一般常见的主要有两种处理方式:行内编辑和弹出框编辑
本文实例讲述了js对象基础用法。分享给大家供大家参考。具体分析如下:js对象在本质上与数组相同,都是存放一组数据。但创建方法有所不同,对象需
它为什么是有用的? 作为一名JavaScript开发者,你可能经常发现自己处于代码覆盖可能有用的情景。例如:对测试套件的质量感兴趣? 重构一
tensorflow里面给出了一个函数用来读取图像,不过得到的结果是最原始的图像,是咩有经过解码的图像,这个函数为tf.gfile.Fast
前言在文档对象模型 (DOM) 中,每个节点都是一个对象。DOM 节点有三个重要的属性 :1. nodeName : 节点的名称2. nod
本文实例讲述了python os模块简单应用。分享给大家供大家参考,具体如下:举例中的目录形式如下所示:In [36]: pwdOut[36
本文实例讲述了Symfony2框架表单用法。分享给大家供大家参考,具体如下:对于一个Web开发者来说,处理HTML表单是一个最为普通又具挑战
本文实例讲述了Python实现压缩与解压gzip大文件的方法。分享给大家供大家参考,具体如下:#encoding=utf-8#author:
jemalloc源于Jason Evans 2006年在BSDcan conference发表的论文:《A Scalable Concurr
python中使用.py配置文件 一、格式:创建一个config.py文件在文件中加配置:DEBUG=Truedm_connect = {
插入排序插入排序是一种简单的排序算法,以数组为例,我们可以把数组看成是多个数组组成。插入排序的基本思想是往前面已排好序的数组中插入一个元素,
本文实例讲述了python元祖和字典的内建函数。分享给大家供大家参考,具体如下:元组Tuple元组是序列类型一种,也是不可变类型数据结构,对