Python中经常需要对dict中的key值或者value值进行排序,可以通过sorted方法和lambda结合使用,接下来就是sorted()和lambda
一、sorted()和lambda
sorted()函数原型:
sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list
我们可以看到:一共接受的参数有4个,
需要排序的变量为iterable变量;
cmp,比较的函数,具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0
key,就是用来进行比较的元素,这个元素就是来源于可迭代对象中,指定可迭代对象中的一个元素进行排序
reverse,代表是否逆序,默认情况下是正序
lambda:
匿名函数,用法是:lambda [arguments]: expression
这个用法转换成函数形式就是:
def lambda(arguments):
return expression
二、list和dict排序
接下来是一堆例子,关于对list和dict进行排序的实例,结合这些更深入的理解sorted()和lambda
1、 list排序
然后是嵌套的list,会用到key参数
2、 dict排序
按照key值进行排序:
按照value值进行排序:
注意按照value值进行排序的正确方式是,sorted()方法的第一个参数是需要排序的变量,而对于dict而言,默认输入dict的变量名,key中的lambda中的k就是key,并没有value,因此会报出index out of range的错误,因此可以按照下面的方式执行,这样就可以得到dict中的key和value排序后的list,并且key和value依然是配对的情况
如果我只是想要对value进行排序并且只输出value的结果呢?