字典和列表的巢狀複雜排序大全

2021-10-24 17:32:16 字數 3320 閱讀 4381

****************************************==字典排序

一: 字典排序

解析: 使用sorted 方法, 排序後的結果為乙個元組. 可以字串排序(那數字肯定更沒問題了!)

1: 按照鍵值(value)排序

a =

b =sorted

(a.items(

), key=

lambda x: x[1]

, reverse=

true

)

結果:

[

('c'

,'usa'),

('b'

,'russia'),

('a'

,'china'),

('d'

,'canada'

)]

2: 按照鍵名(key)排序

a =

b =sorted

(a.items(

), key=

lambda x: x[0]

, reverse=

true

)

結果:

[

('d'

,'canada'),

('c'

,'usa'),

('b'

,'russia'),

('a'

,'china'

)]

3: 巢狀字典, 按照字典鍵名(key)排序

a =

,'c':,

'b':

,'d':}

b =sorted

(a.items(

), key=

lambda x: x[1]

, reverse=

true

)

結果:

[

('c',)

,('b',),

('a',)

,('d',

)]

4: 巢狀列表, 針對列表第乙個元素排序( 其實直接寫 x: x[1] 就是按照第乙個值排序. )

a =

b =sorted

(a.items(

), key=

lambda x: x[1]

[0], reverse=

true

)

結果:

[

('c',[

3,4]

),('d',[

2,1]

),('a',[

1,3]

),('b',[

0,2]

)]

4-2: 巢狀列表, 按照列表其他元素排序 只需要修改列表對應的下標

a =

b =sorted

(a.items(

), key=

lambda x: x[1]

[1], reverse=

true

)

結果:

[

('c',[

3,4]

),('a',[

1,3]

),('b',[

0,2]

),('d',[

2,1]

)]

總結: 此處使用lambda方法, x: x[1][1] 就可以看做是在訪問字典的值, 想要按照哪個數值排序, 用相應的座標對應即可, 但當字典過於複雜後, 應該選擇用元組儲存, 簡化排序過程.

****************************************==列表排序

二: 列表排序

1: 按照字母排序

a =

['usa'

,'china'

,'canada'

,'russia'

]a.sort(reverse=

true

)

結果:

[

'usa'

,'russia'

,'china'

,'canada'

]

2; 巢狀列表的排序, 按照子列表的其他值排序雷系, 修改x[0] 這裡的下標即可

a =[[

'usa'

,'b'],

['china'

,'c'],

['canada'

,'d'],

['russia'

,'a']]

a.sort(key=

lambda x: x[0]

, reverse=

true

)

結果:

[

['usa'

,'b'],

['russia'

,'a'],

['china'

,'c'],

['canada'

,'d'

]]

3: 巢狀字典, 按照字典值(value) 排序

a =[,

,,]a.sort(key=

lambda x: x[

'letter'

], reverse=

true

)

結果:

[,,

,]

當字典值也是字典時, 這時候會優先按照鍵名排序, 再按照鍵值排序. 例子如下

a =[}

,},}

,}]a.sort(key=

lambda x: x[

'letter'

], reverse=

true

)

結果:

[},

},},

}]

a =[}

,},}

,}]a.sort(key=

lambda x: x[

'letter'

], reverse=

true

)

結果:

[},

},},

}]

Python 字典 列表 巢狀 複雜排序大全

一 字典排序 解析 使用sorted 方法,排序後的結果為乙個元組.可以字串排序 那數字肯定更沒問題了 1 按照鍵值 value 排序 a b sorted a.items key lambda x x 1 reverse true 結果 c usa b russia a china d canad...

Python 字典 列表 巢狀 複雜排序大全

解析 使用sorted 方法,排序後的結果為乙個元組.可以字串排序 那數字肯定更沒問題了 a b sorted a.items key lambda x x 0 reverse true 結果 d canada c usa b russia a china a b sorted a.items ke...

python 巢狀列表排序,字典排序

python 巢狀列表排序,字典排序 temp dict temp list test cxiaoxue 19 exiaolu 17 dxiaolin 20 bxiaoli 18 axiaoming 18 fxiaojuan 21 if name main 巢狀列表 多維陣列 排序 print f ...