Python通過公共鍵對字典列表排序

2021-10-02 05:48:58 字數 1721 閱讀 3285

users =[,

,,,,

,,,]

# 通過公共列age排序,反序的話新增reversed=true

sort_by_age =

sorted

(users,key=

lambda x:x[

'age'])

print

(sort_by_age)

# 輸出[,

,,,,

,,]

operator模組中的itemgetter

itemgetter()通常要比lambda要快一些

from operator import itemgetter

sort_by_age =

sorted

(users,key=itemgetter(

'age'))

# 結果和上面完全一樣

# 接受多個

by_height_age =

sorted

(users,key=itemgetter(

'height'

,'age'))

print

(by_height_age)

# 輸出[,

,# height相同再通過age排序,,

,,,]

# 獲取height最大的

max(users,key=itemgetter(

'age'

))

heapq模組中的nlargestnsmallest

from heapq import nlargest,nsmallest

from operator import itemgetter

# 簡單序列

nums =[21

,1,546,6

,269

,236

,344,56

,3]# 最大三個

print

(nlargest(

3,nums)

)# 最小三個

print

(nsmallest(

3,nums)

)# 輸出

[546

,344

,269][

1,3,

6]# 複雜序列,就用上面的users

# 年齡最大三人

# sort_age = nlargest(3,users, key=lambda a: a['age'])

sort_age = nlargest(

3,users, key=itemgetter(

'age'))

print

(sort_age)

# 最矮三人

sort_height = nsmallest(

3, users, key=itemgetter(

'height'))

print

(sort_height)

# 輸出[,

,][,

,]

python字典 通過值反查鍵(簡潔寫法)

通過鍵查值比較容易,通過值反查鍵就稍微麻煩點,這裡給大家提供點思路。第一種是值唯一的情況直接構造列表,通過value的索引取對應的key。第二種是值不唯一的情況,需要通過for遍歷出所有的索引然後查出所有對應的key。如果你需要列印所有滿足查詢值所對應的key,選第二種 如果你只需要列印首次出現查詢...

python2 中實現字典公共鍵提取

建立相同公共鍵字典 from random import randint,sample sample abcdefg randint 3,6 s1 s2 s3 提取字典中公共鍵第一種方法 for k in s1 res if k in s2 and k in s3 print res 第二種方法 使...

python快速找到多個字典中的公共鍵

第一輪 第二輪 統計出錢n輪,每場比賽都有進球的球員 方法一 效率低 隨機產生進球成員 隨機取樣 s sample abcdefg randint 3,6 print s s1 s2 s3 print s1 print s2 print s3 獲取公共鍵 res res for k in s1 if...