dic =
想把dic的value按照從大到小排序(value都是整數)。
寫法如下:sorted(dic.iteritems(), key=lambda d:d[1], reverse = false )
呵呵,看了是不是覺得有點暈?沒關係。慢慢來。
先看lambda函式是什麼意思?
>>> f=lambda x:x+1
>>> f(2)
3很簡單了,x是引數,x+1是函式返回值。
那dic.iteritems()是什麼?在sorted函式裡又是怎麼和lambda發生關係的呢?看我的除錯**:
ok,再看輸出結果:
直接迴圈字典,迴圈的是key,不是value。dic.iteritems()是乙個元組的集合。每個元組包含的是一對key、value,像這樣(key,value)。而lambda裡的d是什麼?d[0]又是什麼?我們把lambda d:d[1]改成lambda asd:asd[1]結果還是一樣的。它只是從前面傳遞過來的引數,怎麼命名無所謂。意思是把dic.iteritems()裡的元組傳進來。但是我們只要之中的value,也就是d[1]。即按照vlaue來進行排序。如果想按照key排序就是key=lambda
d:d[0]了。reverse = false是指按反方向排序,即從大到小。
我說的可能有點亂。不過你看一下我的除錯**。就應該明白了。
python實現字典排序 python 字典排序
引子 字典,形如 dic 字典中的元素沒有順序,所以dic 0 是有語法錯誤的。並且不可以有重複的鍵值,所以 dic.add c 4後,字典變成 待解決問題 如何根據需要可以根據 鍵 或 鍵值 進行不同順序的排序?函式原型 sorted dic,value,reverse dic為比較函式,valu...
python字典排序
1 準備知識 在python裡,字典dictionary是內建的資料型別,是個無序的儲存結構,每一元素是key value對 如 dict 其中 username 和 database 是key,而 password 和 master 是value,可以通過d key 獲得對應值value的引用,但...
python 字典排序
prices 對於這樣乙個字典,如何根據 來對字典進行排序呢?首先你就會問,python中的字典明明是無序的,何談排序之說?別急,辦法總是有的。對於這樣乙個字典的排序,直接使用sorted函式肯定是不行的,因為其排序依據是根據keys而非values。若想對它字典進行排序,首先要做的就是將鍵值對反轉...