Python实现对字典分别按键(key)和值(value)进行排序的方法分析
作者:Asia-Lee 时间:2021-06-05 00:36:32
本文实例讲述了Python实现对字典分别按键(key)和值(value)进行排序的方法。分享给大家供大家参考,具体如下:
方法一:
#使用sorted函数进行排序
'''
sorted(iterable,key,reverse),sorted一共有iterable,key,reverse这三个参数;
其中iterable表示可以迭代的对象,例如可以是dict.items()、dict.keys()等
key是一个函数,用来选取参与比较的元素,reverse则是用来指定排序是倒序还是顺序,reverse=true则是倒序,
reverse=false时则是顺序,默认时reverse=false。
'''
#初始化字典
dict_data={6:9,10:5,3:11,8:2,7:6}
1、对字典按键(key)进行排序
#对字典按键(key)进行排序(默认由小到大)
test_data_0=sorted(dict_data.keys())
#输出结果
print(test_data_0) #[3, 6, 7, 8, 10]
test_data_1=sorted(dict_data.items(),key=lambda x:x[0])
#输出结果
print(test_data_1) #[(3, 11), (6, 9), (7, 6), (8, 2), (10, 5)]
2、对字典按值(value)进行排序
#对字典按值(value)进行排序(默认由小到大)
test_data_2=sorted(dict_data.items(),key=lambda x:x[1])
#输出结果
print(test_data_2) #[('8', 2), ('10', 5), ('7', 6), ('6', 9), ('3', 11)]
test_data_3=sorted(dict_data.items(),key=lambda x:x[1],reverse=True)
#输出结果
print(test_data_3) #[('3', 11), ('6', 9), ('7', 6), ('10', 5), ('8', 2)]
方法二:
import operator
#初始化字典
dict_data={6:9,10:5,3:11,8:2,7:6}
#按键(key)进行排序
test_data_4=sorted(dict_data.items(),key=operator.itemgetter(0))
test_data_5=sorted(dict_data.items(),key=operator.itemgetter(0),reverse=True)
print(test_data_4) #[(3, 11), (6, 9), (7, 6), (8, 2), (10, 5)]
print(test_data_5) #[(10, 5), (8, 2), (7, 6), (6, 9), (3, 11)]
#按值(value)进行排序
test_data_6=sorted(dict_data.items(),key=operator.itemgetter(1))
test_data_7=sorted(dict_data.items(),key=operator.itemgetter(1),reverse=True)
print(test_data_6) #[(8, 2), (10, 5), (7, 6), (6, 9), (3, 11)]
print(test_data_7) #[(3, 11), (6, 9), (7, 6), (10, 5), (8, 2)]
附:operator库常用函数说明
操作 | 语法 | 函数 |
---|---|---|
相加 | a + b | add(a, b) |
字符串拼接 | seq1 + seq2 | concat(seq1, seq2) |
包含测试 | obj in seq | contains(seq, obj) |
普通除法 | a / b | truediv(a, b) |
取整除法 | a // b | floordiv(a, b) |
按位与 | a & b | and_(a, b) |
按位异或 | a ^ b | xor(a, b) |
按位取反 | ~ a | invert(a) |
按位或 | a | b | or_(a, b) |
指数运算 | a ** b | pow(a, b) |
识别 | a is b | is_(a, b) |
识别 | a is not b | is_not(a, b) |
索引赋值 | obj[k] = v | setitem(obj, k, v) |
索引删除 | del obj[k] | delitem(obj, k) |
索引 | obj[k] | getitem(obj, k) |
左移 | a << b | lshift(a, b) |
取模 | a % b | mod(a, b) |
乘法 | a * b | mul(a, b) |
负数 | -a | neg(a) |
非运算 | not a | not_(a) |
正数 | + a | pos(a) |
右移运算 | a >> b | rshift(a, b) |
切片赋值 | seq[i:j] = values | setitem(seq, slice(i, j), values) |
切片删除 | del seq[i:j] | delitem(seq, slice(i, j)) |
切片 | seq[i: j] | getitem(seq, slice(i, j)) |
字符串格式化 | s % obj | mod(s, obj) |
减法 | a - b | sub(a, b) |
真值测试 | obj | truth(obj) |
小于 | a < b | lt(a, b) |
小于等于 | a <= b | le(a, b) |
等于 | a == b | eq(a, b) |
不等于 | a != b | ne(a, b) |
大于等于 | a >= b | ge(a, b) |
大于 | a > b | gt(a, b) |
PS:这里再为大家推荐一款关于排序的演示工具供大家参考:
在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具:
http://tools.jb51.net/aideddesign/paixu_ys
希望本文所述对大家Python程序设计有所帮助。
来源:https://blog.csdn.net/asialee_bird/article/details/79675802
标签:Python,字典,排序
0
投稿
猜你喜欢
python中list*n生成多维数组与for循环生成多维数组的区别说明
2022-01-10 08:57:33
python的Template使用指南
2023-10-14 01:30:58
深入浅析mybatis oracle BLOB类型字段保存与读取
2024-01-15 02:21:26
MySql中sql语句执行过程详细讲解
2024-01-18 07:44:26
vue2.0 自定义 饼状图 (Echarts)组件的方法
2024-04-27 15:51:07
利用python批量修改word文件名的方法示例
2023-03-15 00:05:12
ASP从数据库中获取下载文件
2007-10-06 21:17:00
Java正则表达式循环匹配字符串方式
2023-07-25 03:29:48
python 移动图片到另外一个文件夹的实例
2022-09-17 07:56:14
清除浮动的最简写法
2009-03-30 15:58:00
Python OpenCV对图像像素进行操作
2021-02-25 13:02:20
排序与检索
2008-05-18 13:09:00
Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法
2022-08-13 21:32:25
Python替换NumPy数组中大于某个值的所有元素实例
2021-11-11 07:36:20
Python多进程写入同一文件的方法
2023-09-08 10:20:24
sqlserver 巧妙的自关联运用
2012-07-21 14:55:12
Python读取ini配置文件传参的简单示例
2022-02-06 09:51:36
Python数据提取-lxml模块
2022-04-03 15:15:19
一起来学习一下python的数字类型
2023-03-10 05:28:30
在ASP.NET 2.0中操作数据之十一:基于数据的自定义格式化
2023-07-14 19:53:21