102.Python——字典和列表排序
有时我们需要根据字典的键或值进行排序,或者当列表元素是元组时,也需要根据第几个元组的值进行排序。
一、先随机构造一个字典,长度为10,键是随机字符,值是随机整数
import random
#随机生成一个列表,用着字典的值
v=random.sample(range(100),10)
#随机生成一个列表,元素是英文字母,用着字典的键
k=random.sample(list('abcdefghijklmnopqrstuvwxyz'),10)
#两列表合并,元素为字典的键和值
kv=dict(zip(k,v))
print(kv)
#随机输出结果
{'r': 91, 'c': 12, 'z': 62, 'y': 8, 'v': 55, 'a': 25, 'i': 38, 'w': 84, 'd': 57, 'u': 19}
二、按照字典的值进行排序
#按照字典的值进行排序
v_sorted=sorted(kv.items(),key=lambda x:x[1],reverse=True)
print(v_sorted)
#排序结果
[('t', 96), ('q', 95), ('f', 68), ('g', 54), ('r', 39), ('w', 31), ('z', 22), ('d', 16), ('v', 11), ('l', 9)]
三、按照字典的键进行排序
#按照字典的键进行排序
k_sorted=sorted(kv.items(),key=lambda x:x[0])
print(k_sorted)
#排序结果
[('d', 16), ('f', 68), ('g', 54), ('l', 9), ('q', 95), ('r', 39), ('t', 96), ('v', 11), ('w', 31), ('z', 22)]
四、两列表合并,元素为字典的键和值
#字典转列表
lst=list(kv.items())
print(lst)
#转换结果
[('q', 95), ('g', 54), ('d', 16), ('t', 96), ('z', 22), ('w', 31), ('f', 68), ('r', 39), ('l', 9), ('v', 11)]
五、列表排序,根据元组的第2个元素的值
#列表排序,根据字典的值
lst.sort(key=lambda x:x[1],reverse=True)
print(lst)
#输出结果
[('t', 96), ('q', 95), ('f', 68), ('g', 54), ('r', 39), ('w', 31), ('z', 22), ('d', 16), ('v', 11), ('l', 9)]
本文主要演示字典或列表排序的一种方法。