python有序遍历dict(字典)

版权声明:本文为博主原创文章,未经博主允许不得转载。 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

猜你喜欢

转载自blog.csdn.net/u014248127/article/details/79281672