Python教程按照字典的键或值进行排序方法解析

作者:季布, 时间:2023-01-12 09:10:26 

Python sorted() 函数

sorted() 函数对所有可迭代的对象进行排序操作

sorted 语法:

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

参数说明:

iterable – 可迭代对象。

key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。

reverse – 排序规则,reverse = True 降序 , reverse = False 升序(默认)。

1、对字典按键(key)进行排序


dir_info= {'a':1,'d':8,'c':3,'b':5}
#对字典按键(key)进行排序(默认由小到大)
dir_sort = sorted(dir_info.items(),key=lambda x:x[0])
print(dir_sort)

输出结果:
[('a', 1), ('b', 5), ('c', 3), ('d', 8)]

直接对字典的key排序


sorted({'a':1,'d':8,'c':3,'b':5}.keys())

2、对字典按值(value)进行排序


dir_info= {'a':1,'d':8,'c':3,'b':5}
#对字典按键(key)进行排序(默认由小到大)
dir_sort = sorted(dir_info.items(),key=lambda x:x[1])
print(dir_sort)

输出结果
[('a', 1), ('c', 3), ('b', 5), ('d', 8)]

直接对字典的value排序


sorted({'a':1,'d':8,'c':3,'b':5}.values())

解析:

dir_info.items()是获得了字典的key,value 两个参数

dir_info[0]表示按照第一元素进行排序

dir_info[1]表示按照第二个元素进行排序

为了便于理解,再举个例子


person_info = [('zhangsan', '男', 15), ('lisi', '男', 12), ('wangwu', '男', 10),]
person_sort = sorted(person_info, key=lambda x: x[2])
print(person_sort)

输出结果:
[('wangwu', '男', 10), ('lisi', '男', 12), ('zhangsan', '男', 15)]

当然key的形式也是多样的
比如:

1.按照字符串长度进行排序


key = lambda x:len(x)

2.先按照第一个元素,再按照第二个元素:


key = lambda x : (x[0] , x[1])

扩展:

将列表中数据的某一部分作为关键字进行排序(选取标志性可用于排序的元素作为条件)


list_info = ['test-10.txt','test-11.txt','test-22.txt','test-14.txt','test-3.txt','test-20.txt']
list_sort = sorted(list_info, key=lambda d : int(d.split('-')[1].split('.')[0]))
print(list_sort)

输出结果
['test-3.txt', 'test-10.txt', 'test-11.txt', 'test-14.txt', 'test-20.txt', 'test-22.txt']

来源:https://blog.csdn.net/weixin_47906106/article/details/119378398

标签:Python,排序,字典,键值
0
投稿

猜你喜欢

  • 如何用Python获取计算机名,ip地址,mac地址

    2021-12-31 05:41:04
  • SQL Server树型结构数据处理的存储过程

    2010-01-26 13:40:00
  • Flask使用Pyecharts在单个页面展示多个图表的方法

    2021-10-12 18:16:35
  • 学生信息管理系统python版

    2023-10-17 07:32:34
  • Python利用GDAL模块实现读取栅格数据并对指定数据加以筛选掩膜

    2021-02-16 00:49:31
  • mysqldump你可能不知道的参数

    2024-01-28 13:55:49
  • SQL Server如何通过SQL语句直接操作另一台服务器上的SQL SERVER的数据

    2024-01-29 07:55:30
  • 如何使用flask将模型部署为服务

    2021-11-11 06:02:48
  • Python数据可视化之用Matplotlib绘制常用图形

    2023-04-05 07:10:46
  • 实操MySQL+PostgreSQL批量插入更新insertOrUpdate

    2024-01-17 09:06:19
  • node.js用fs.rename强制重命名或移动文件夹的方法

    2024-05-13 10:05:37
  • 浅析Python中的随机采样和概率分布

    2023-12-11 14:51:11
  • python中将正则过滤的内容输出写入到文件中的实例

    2023-12-15 06:56:09
  • Python中如何替换字典中的值

    2022-10-04 21:21:35
  • 通过JavaScript实现扑克牌游戏的示例代码

    2024-05-13 09:20:40
  • vue中自定义指令(directive)的基本使用方法

    2024-05-28 15:46:32
  • vue自定义过滤器创建和使用方法详解

    2024-05-09 15:17:06
  • Django 项目重命名的实现步骤解析

    2021-01-13 14:05:49
  • Oracle外键不加索引引起死锁示例

    2024-01-20 20:10:08
  • anaconda创建、查看、激活与删除虚拟环境指令总结

    2023-04-09 13:01:23
  • asp之家 网络编程 m.aspxhome.com