python字典排序方法「建议收藏」

python字典排序方法「建议收藏」字典是“键-值对”的无序可变序列在实际运用中,对字典进行排序是一个比较常见的操作,主要用到了python内置函数sorted(),该函数可以对所有可迭代的对象进行排序操作。语法(python3):sorted(iterable,key=None,reverse=False)参数说明:iterable:可迭代对象,即可以用for循环进行迭代的对象;key:主要是用来进行比较的元素,只有一个参数,具体的函数参数取自于可迭代对象中,用来指定可迭代对象中的一个元素来进行排序;reverse:排序规

大家好,又见面了,我是你们的朋友全栈君。

字典是“键-值对”的无序可变序列
在实际运用中,对字典进行排序是一个比较常见的操作,主要用到了python内置函数sorted(),该函数可以对所有可迭代的对象进行排序操作。
语法(python3):

sorted(iterable, key=None,reverse=False)

参数说明:
iterable:可迭代对象,即可以用for循环进行迭代的对象;
key:主要是用来进行比较的元素,只有一个参数,具体的函数参数取自于可迭代对象中,用来指定可迭代对象中的一个元素来进行排序;
reverse:排序规则,reverse=False升序(默认),reverse=True降序。

以下总结了sorted()函数针对字典排序的用法。
第一种:最常见的单个字典格式数据排序

# 字典排序
a = { 
   'a': 3, 'c': 89, 'b': 0, 'd': 34}
# 按照字典的值进行排序
a1 = sorted(a.items(), key=lambda x: x[1])
# 按照字典的键进行排序
a2 = sorted(a.items(), key=lambda x: x[0])
print('按值排序后结果', a1)
print('按键排序后结果', a2)
print('结果转为字典格式', dict(a1))
print('结果转为字典格式', dict(a2))

在这里插入图片描述
原理:以a.items()返回的列表[(‘a’, 3), (‘c’, 89), (‘b’,0), (‘d’, 34)]中的每一个元素,作为匿名函数(lambda)的参数,x[0]即用“键”排序,x[1]即用“值”排序;返回结果为新的列表,可以通过dict()函数转为字典格式。

第二种:字典列表排序

b = [{ 
   'name': 'lee', 'age': 23}, { 
   'name': 'lam', 'age': 12}, { 
   'name': 'lam', 'age': 18}]
b1 = sorted(b, key=lambda x: x['name'])
b2 = sorted(b, key=lambda x: x['age'],  reverse=True)
b3 = sorted(b, key=lambda x: (x['name'], -x['age']))
print('按name排序结果:', b1)
print('按age排序结果:', b2)
print('name相同按age降序排列:', b3)

在这里插入图片描述
原理:以列表b里面的每一个字典元素作为匿名函数的参数,然后根据需要用键取字典里面的元素作为排序的条件,如x[‘name’]即用name键对应的值来排序。

-end-

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150247.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月18日 下午4:36
下一篇 2022年6月18日 下午4:46


相关推荐

  • Lovart上新功能啦!搭配NanoBanana Pro,简直王炸!

    Lovart上新功能啦!搭配NanoBanana Pro,简直王炸!

    2026年3月15日
    2
  • java的”HelloWorld”代码解释「建议收藏」

    java的”HelloWorld”代码解释「建议收藏」packagetext_1;publicclassHelloWorld{ publicstaticvoidmain(String[]args){ System.out.print(“Helloworld!”); }}从第一行开始packagetext_1;说明工程文件名,开发者准确识别出目前自己所编写的工程文件。publicclassHel…

    2022年5月28日
    36
  • Instruments性能检测

    Instruments性能检测2019 独角兽企业重金招聘 Python 工程师标准 gt gt gt

    2026年3月16日
    1
  • 3306端口被占用解决方式

    3306端口被占用解决方式3306 端口被占用解决方式打开 phpstudy 发现 3306 端口被占用了 win r 然后 cmd 进入命令行 输入 netstat ano 查看所有端口信息接着可以 netstat ano findstr 11412 输入对应端口的 PID 可以看到当前的端口被占用情况 打开任务管理器 在详细信息中找到对应 PID 结束该任务接着就可以成功开启了

    2025年12月6日
    7
  • Navicat 连接SQLServer 数据库

    Navicat 连接SQLServer 数据库连接配置方式如图 有时候 Navicat 并没有初始化安装 sqlncli 所以连接的时候会报没有默认驱动 如图 解决方法 在 navicat 目录下找到对应驱动 点击安装即可 安装过程中设置为全部允许安装

    2026年3月26日
    2
  • 光流法原理概述「建议收藏」

    光流法原理概述「建议收藏」光流的概念是Gibson在1950年首先提出来的。它是空间运动物体在观察成像平面上的像素运动的瞬时速度,是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。一般而言,光流是由于场景中前景目标本身的移动、相机的运动,或者两者的共同运动所产生的。    简单来说,光流是空间运动物体在观测成像平面上

    2022年7月23日
    18

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号