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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【Discuz】dz3.2论坛搬家心得

    【Discuz】dz3.2论坛搬家心得首先进入后台站长—>数据库—>Discuz!数据(不含UCenter)—>提交然后进入后台UCenter—>数据备份—>提交最后把老版本的程序整个目录都压缩传到新服务器修改旧服务器的/config/config_ucenter.php/config/config_global.php/uc_server/data/conf…

    2022年7月25日
    9
  • vue router.beforeEach(),详解「建议收藏」

    vue router.beforeEach(),详解「建议收藏」router.beforeEach()一般用来做一些进入页面的限制。比如没有登录,就不能进入某些页面,只有登录了之后才有权限查看某些页面。。。说白了就是路由拦截。第一步规定进入路由需不需要权限@/router/index.jsimportAfrom’@/components/a'{path:’/a’,name:’a’,component:…

    2022年7月11日
    34
  • 一致性hash算法java_一致性hash和普通hash

    一致性hash算法java_一致性hash和普通hash一致性hash算法(consistenthashing)张亮consistenthashing算法早在1997年就在论文Consistenthashingandrandomtrees中被提出,目前在cache系统中应用越来越广泛;1基本场景比如你有N个cache服务器(后面简称c

    2022年10月5日
    2
  • java解析xml element_java解析XML Node与Element的区别(推荐)「建议收藏」

    java解析xml element_java解析XML Node与Element的区别(推荐)「建议收藏」对Element和Node有困惑是因为对xml整个结构不了解,以下作为一个简要概述:以下图为w3c.org网站的xml文档树图:从上图可以看出,一个xml文档由元素节点,属性节点,文本节点构成,其中bookstore被称为文档元素或根元素,也是一个元素节点XMLDOM是这样规定一个节点的XML文档中的每个成分都是一个节点。整个文档是一个文档节点即Document节点。在java中Doc…

    2022年5月4日
    122
  • rtmp/rtsp/hls公网真正可用的测试地址

    rtmp/rtsp/hls公网真正可用的测试地址相信大家在调试播放器的时候,都有这样的困惑,很难找到合适的公有测试源,以下是大牛直播SDK(GitHub地址)整理的真正可用的直播地址源。其中,rtmp和rtsp的url,用我们播放器验证通过,hls的地址,用vlc验证通过。1.RTMP协议直播源香港卫视:rtmp://live.hkstv.hk.lxdns.com/live/hks(目前不可用,hks1、hks2可用)这个r…

    2022年5月10日
    505
  • AI重新定义web及谷歌验证码安全

    AI重新定义web及谷歌验证码安全云给安全带来的影响距离2006年Amazon发布EC2服务已经过去了11年,在这11年里,发生的不仅仅是AWS收入从几十万美金上涨到100多亿美金,更重要的是云计算已经走进每一家企业。根据信通院发布的“2016云计算白皮书”,目前近90%的企业都已经开始使用云计算(包括公有云、私有云等),这说明大规模云化对于企业而言已经不只是趋势,更是确凿的既成事实。云化普及的同时也给安全带来很多挑战,主要包括:云化导致以硬件设备为主的传统安全方式失效。我在跟企业交流时,不止一家企业提出了这样的担心:在上公有云的过程

    2022年5月27日
    39

发表回复

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

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