秋天是秋高气爽、秋风瑟瑟的季节。农民伯伯在辛勤地收谷,秋天的大树落下了好多树叶像翩翩起舞的蝴蝶。夕阳的金辉把绿色的林海染成金黄一片。
本文实例讲述了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) |
包含测试 | objinseq | 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) |
识别 | aisb | is_(a,b) |
识别 | aisnotb | is_not(a,b) |
索引赋值 | obj[k]=v | setitem(obj,k,v) |
索引删除 | delobj[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) |
非运算 | nota | not_(a) |
正数 | +a | pos(a) |
右移运算 | a>>b | rshift(a,b) |
切片赋值 | seq[i:j]=values | setitem(seq,slice(i,j),values) |
切片删除 | delseq[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.haodaima.com/aideddesign/paixu_ys
希望本文所述对大家Python程序设计有所帮助。
本文Python实现对字典分别按键(key)和值(value)进行排序的方法分析到此结束。要铭记在心:每天都是最美好的日子。小编再次感谢大家对我们的支持!