Skip to content
本站總訪問量
本站訪客數 人次

Python的排序

排序的函式預設都是由第一個從小到大

python
ary = [2,1,3]
ary.sort()
# 或
a = sorted(ary)
# 會輸出[1, 2, 3]

如果今天要從大到小呢?

python
ary = [2,1,3]
ary.sort(reverse=True)
# 或
a = sorted(ary,reverse=True)

# 會輸出[3, 2, 1]

如果今天要指定大小呢 ?

x 是參數(名字可以自己取)

python
ary = [(1,55),(2,11),(3,11)]
ary.sort(key=lambda x: x[1])
a = sorted(ary,key=lambda x: x[1])

# 會輸出[(2, 11), (3, 11), (1, 55)]

這樣會依照裡面的第1個值做排序(不是第0個)

好 太好了會針對排序了

如果今天要從大到小再從從小到大呢?

如果問題是有二個項目,項目二由大到小,項目二都一樣的話,再依照項目一由小到大呢?

python
ary = [(1,55),(2,11),(3,11)]
ary.sort(key=lambda x: (-x[1],x[0]))
a = sorted(ary,key=lambda x: (-x[1],x[0]))

沒錯 加個負號就可以由大到小了(是不是超方便?) 用括號括起來 會先判斷第一個在依序判斷 !

想要練習可以在

資料來源

Contributors

The avatar of contributor named as lucashsu95 lucashsu95

Changelog