首页 > 编程语言 >Python 字典排序

Python 字典排序

时间:2022-08-17 11:47:54浏览次数:66  
标签:name Python key print sorted 排序 字典

字典是“键-值对”的无序可变序列
在实际运用中,对字典进行排序是一个比较常见的操作,主要用到了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键对应的值来排序。
————————————————
版权声明:本文为CSDN博主「一位代码」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/LHJCSDNYL/article/details/122525942

标签:name,Python,key,print,sorted,排序,字典
From: https://www.cnblogs.com/lld76/p/16594525.html

相关文章

  • 批量产生文件夹(Python)
    1、指定文件夹路径,在该路径下批量生成指定名称(具有一定的规律性)的文件夹#导入OS库importosFilePath=""#指定文件夹路径NumSets=#文件夹个数defBatProFile_......
  • 跟我学Python图像处理丨基于灰度三维图的图像顶帽运算和黑帽运算
    摘要:本篇文章结合灰度三维图像讲解图像顶帽运算和图像黑猫运算,通过Python调用OpenCV函数实现。本文分享自华为云社区《[Python图像处理]十三.基于灰度三维图的图像顶帽运......
  • python自动化上传文件
    定位上传文件的按钮报错:selenium.common.exceptions.ElementNotInteractableException:Message:elementnotinteractable修改为执行js代码正常,如下:elem_js=self._dr......
  • python打包成EXE文件
    参考博客:https://www.300.cn/itzspd/609175.htmlPython打包工具PyInstaller的安装与pycharm配置支持PyInstaller详细方法windows系统下安装Pyinstallercmd下输入指令pi......
  • python菜鸟学习: 8. 集合基础知识
    #-*-coding:utf-8-*-#列表的特性:1,去重;2.关系测试list1=[1,4,6,8,7,8,9]#集合去重list2=set(list1)print(list2)list4=[1,3,5,7,9,11]list3=set(l......
  • python_socket
    importsocketdeftarget_tcp(host,port):"""建立tcp连接"""client=socket.socket(socket.AF_INET,socket.SOCK_STREAM)#创建socket对象client.co......
  • Python修改windows键盘映射
    新电脑环境的处理之一是修改键盘映射,主Ctrl键使用CapsLockCapsLock改为LeftCtrlRightCtrl改为CapsLockLeftCtrl改为RightCtrl原来使用KeybMap这个软件修改,由于自己修改......
  • python 中统计绵羊 ARS-UI_Ramb_v2.0)参考基因组中GC含量及每条染色体的长度
     001、方法1root@PC1:/home/test#lsa.fastatest.pyroot@PC1:/home/test#head-n5a.fasta##参考基因组文件>NC_056054.1OvisariesstrainOA......
  • python判断目录是否存在,不存在则创建目录
     importoswjjname=input("请输入存放目录\n")#输入目标目录ifos.path.exists(wjjname):#判断目标目录是否存在print("目录存在")else:print("目录不存在"......
  • 22/8/17 python基础学习
    python语法基础python解释器提供一个traceback,指出解释器尝试运行代码时的错误信息。第二章变量和简单数据类型在字符串中使用变量:f字符串:实例代码:first_name="ada......