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的結果呢?

