方法一:使用sorted函数进行排序
sorted(iterable,key,reverse)
参数:
iterable:表示可以迭代的对象,例如可以是dict.items()、dict.keys()等
key:是一个函数,用来选取参与比较的元素
reverse:用来指定排序是倒序还是顺序,reverse=True则是降序,reverse=False时则是升序,默认时reverse=False
一、对字典的键(key)进行排序
dict1 = {1: 2, 0: 3, 4: 1, 9: 6, 5: 14, 3: 8, 2: 1} #定义一个字典
1)dict1_sorted_keys = sorted(dict1.keys())
# 使用位置参数,将dict1.keys()传给iterable,按照dict1的键进行升序排列
print(dict1_sorted_keys)
2)dict1_sorted_items = sorted(dict1.items())
print(dict1_sorted_items)
3)dict1_sorted_items1 = sorted(dict1.items(),key = lambda x:x[0],reverse = True)
print(dict1_sorted_items1)
输出结果分别为:
[0, 1, 2, 3, 4, 5, 9]
[(0, 3), (1, 2), (2, 1), (3, 8), (4, 1), (5, 14), (9, 6)]
[(9, 6), (5, 14), (4, 1), (3, 8), (2, 1), (1, 2), (0, 3)]
二、对字典的值(value)进行排序
dict1 = {1: 2, 0: 3, 4: 1, 9: 6, 5: 14, 3: 8, 2: 1}
dict1_sorted_values = sorted(dict1.items(),key = lambda x:x[1],reverse = True)
print(dict1_sorted_values)
输出结果为:
[(5, 14), (3, 8), (9, 6), (0, 3), (1, 2), (4, 1), (2, 1)]
方法二:使用operator.itemgetter进行排序
operator.itemgetter:获取对象的哪些维的数据,参数为一些序号
例:
test=[1,2,3,4,5]
itemgetter0=operator.itemgetter(0)
itemgetter0(test) #itemgetter0是作为一个函数作用在test上面
结果为:1
itemgetter1=operator.itemgetter(1)
itemgetter1(test)
结果为:2
一:按键(key)排序
import operator
dict1 = {1: 2, 0: 3, 4: 1, 9: 6, 5: 14, 3: 8, 2: 1}
dict1_sorted_keys = sorted(dict1.items(),key=operator.itemgetter(0))
dict1_sorted_keys1 =sorted(dict1.items(),key=operator.itemgetter(0),reverse=True)
print(dict1_sorted_keys)
print(dict1_sorted_keys1)
输出结果分别为为:
[(0, 3), (1, 2), (2, 1), (3, 8), (4, 1), (5, 14), (9, 6)]
[(9, 6), (5, 14), (4, 1), (3, 8), (2, 1), (1, 2), (0, 3)]
二:按值(values)排序
dict1 = {1: 2, 0: 3, 4: 1, 9: 6, 5: 14, 3: 8, 2: 1}
dict1_sorted_values = sorted(dict1.items(),key=operator.itemgetter(1))
dict1_sorted_values1 =sorted(dict1.items(),key=operator.itemgetter(1),reverse=True)
print(dict1_sorted_values)
print(dict1_sorted_values1)
输出结果分别为为:
[(4, 1), (2, 1), (1, 2), (0, 3), (9, 6), (3, 8), (5, 14)]
[(5, 14), (3, 8), (9, 6), (0, 3), (1, 2), (4, 1), (2, 1)]