python字典按照鍵和值進行排序

2021-10-21 02:42:38 字數 2171 閱讀 5324

排序首先想到python的sorted()和sort()

sort 與 sorted 區別:

1.sort 是應用在 list 上的方法,sorted 可以對所有可迭代的物件進行排序操作。

2. list 的 sort 方法返回的是對已經存在的列表進行操作,而內建函式 sorted 方法返回的是乙個新的 list,而不是在原來的基礎上進行的操作。通俗的說,就是sort沒有返回值,sorted有返回值。

sorted 語法: sorted(iterable, key=none, reverse=false)

引數說明:

iterable – 可迭代物件。

key – 主要是用來進行比較的元素,只有乙個引數,具體的函式的引數就是取自於可迭代物件中,指定可迭代物件中的乙個元素來進行排序

reverse – 排序規則,reverse = true 降序 , reverse = false 公升序(預設)。

因此字典按照鍵和值進行排序了,也就是在sorted()中的引數key選擇鍵或者值。

import random

testlist=

for i in

range(20

):81,

100)

)print

(testlist)

zi=for x in testlist:

if x not

in zi.keys():

zi[x]

=testlist.count(x)

print

("zi:"

,zi)

# 按照鍵排序

ll1=

sorted

(zi.items(

),key=

lambda kv:

(kv[0]

))print

(ll1)

#按照值排序

ll2=

sorted

(zi.items(

),key=

lambda kv:

(kv[1]

))print

(ll2)

輸出為:

[88,

97,90,

88,99,

95,95,

95,86,

93,97,

90,95,

98,100,86,

99,90,

84,84]

zi:[(84

,2),

(86,2

),(88

,2),

(90,3

),(93

,1),

(95,4

),(97

,2),

(98,1

),(99

,2),

(100,1

)][(

93,1)

,(98,

1),(

100,1)

,(88,

2),(

97,2)

,(99,

2),(

86,2)

,(84,

2),(

90,3)

,(95,

4)]

1.python 字典 items() 函式以列表返回可遍歷的(鍵, 值) 元組陣列。

2.其中的lambda函式可以參考:python的lambda-map-reduce

字典排序列表

lis =[,

,,]lname=

sorted

(lis,key=

lambda kv:kv[

'name'])

print

(lname)

lage=

sorted

(lis,key=

lambda kv:kv[

'age'])

print

(lage)

輸出為:

[,,

,][,

,,]

字典按照值或鍵進行排序

sorted iterable,key,reverse sorted一共有iterable,key,reverse這三個引數 引數作用 iterable 可迭代物件 例如 dict.items dict.keys 等 key用來選取參與比較的元素,例如確定是按照字典的鍵比較還是按照值進行比較 rev...

python 按照字典的值進行排序

import sys import random reload sys sys.setdefaultencoding utf 8 這種字典,要對值進行按大小排序data str xie zhao chen data dic print data dic.keys 列印字典的所有鍵 print dat...

python 對字典按照value進行排序

字典按照value進行排序共有三種方法 d 第一種方法,key使用lambda匿名函式取value進行排序 a sorted d.items key lambda x x 1 a1 sorted d.items key lambda x x 1 reverse true print a print ...