版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014248127/article/details/79281672
大家都知道dict是无序的,这篇文章介绍dict的有序遍历。这里我们主要用到一个python的方法sorted()。
一,sorted()方法介绍:内建函数sorted方法,可以对所有可迭代的对象进行排序操作。
1,方法-sorted(iterable, key=None, reverse=False):
- iterable,可以看到其中第一个参数是可迭代对象;
- key,主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序;
- reverse,是否反转,默认情况下不反转;
2,sorted()的理解,对list的排序为例:
def test_sorted():
L = [('b', 2), ('a', 1), ('c', 3), ('d', 0)]
print(sorted(L,key=lambda x:x[0])) # 用第一项排序
print(sorted(L,key=lambda x:x[1])) # 用第二项排序
test_sorted()
输出:
[('a', 1), ('b', 2), ('c', 3), ('d', 0)]
[('d', 0), ('a', 1), ('b', 2), ('c', 3)]
二、dict按key有序遍历:
def sort_by_key(dic):
for key in sorted(dic):
print(key,dic[key])
dic = {1:2,4:2,6:1,0:5}
sort_by_key(dic)
输出:
0 5
1 2
4 2
6 1
三、dict按value有序遍历:
def sort_by_value(dic):
for key,value in sorted(dic.items(),key=lambda x:x[1]):
print(key,value)
dic = {1:2,4:2,6:1,0:5}
sort_by_value(dic)
输出:
6 1
1 2
4 2
0 5