關於python中sort排序的乙個簡單問題

2021-10-04 19:43:14 字數 591 閱讀 6916

最近有小夥伴私聊問了一些類似的問題,就是關於python的sort排序的問題:

a = [1, 0, 4, 0, 2, 3]

a.sort(key=bool)

print(a)

輸出結果:

[0, 0, 1, 4, 2, 3]

就是對這個排序的有點不太理解,為什麼是[0, 0, 1, 4, 2, 3],不應該按公升序來的嗎?

之所以產生這個誤區,是因為對這個sort理解還不夠,我之前也寫過一篇關於sort排序的實現,裡面簡單的闡述原理,並且也實現了demo。

我們再來回到這個問題上:

a.sort(key=bool) 這步可以這樣理解:

a = [1, 0, 4, 0, 2, 3]

b = list(map(lambda x: (bool(x), x), a))

b.sort(key=lambda x: x[0])

print(list(map(lambda x: x[1], b)))

這裡運用了元組排序對這個進行了隱式轉化。

也就是說轉成了元組,指定了排序的索引位置,然後再轉回來。

關於sort排序

include include int main sort begin,end i for i 0 i 20 i cout 20 for i 0 i 20 i cout 0 上面就是把a這個陣列公升序排列。bool compare int a,int b include int main i for...

python中sort 與sorted 排序

第一種 內建方法sort 可以直接對列表進行排序 用法 list.sort func none,key none,reverse false or true 對於reverse這個bool型別引數,當reverse false時 為正向排序 當reverse true時 為方向排序。預設為false...

Python 排序(sort 氣泡排序)

coding utf 8 a 1,6,8,11,9,1,8,6,8,7,8 問題1 對列表 a 中的數字從小到大排序 問題2 排序後去除重複的數字 a 1,6,8,11,9,1,8,6,8,7,8 方法一 sort排序 1.sort 正序 a.sort print a 2.sort 倒敘 a.sor...