關(guān)于python中sort排序的一個簡單問題:

最近有小伙伴私聊問了一些類似的問題,就是關(guān)于python的sort排序的問題:

a = [1, 0, 4, 0, 2, 3]
a.sort(key=bool)
print(a)

輸出結(jié)果:
[0, 0, 1, 4, 2, 3]

就是對這個排序的有點不太理解,為什么是[0, 0, 1, 4, 2, 3],不應(yīng)該按升序來的嗎?
之所以產(chǎn)生這個誤區(qū),是因為對這個sort理解還不夠,我之前也寫過一篇關(guān)于sort排序的實現(xiàn),里面簡單的闡述原理,并且也實現(xiàn)了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)))

這里運用了元組排序?qū)@個進行了隱式轉(zhuǎn)化。
也就是說轉(zhuǎn)成了元組,指定了排序的索引位置,然后再轉(zhuǎn)回來。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 這是16年5月份編輯的一份比較雜亂適合自己觀看的學習記錄文檔,今天18年5月份再次想寫文章,發(fā)現(xiàn)簡書還為我保存起的...
    Jenaral閱讀 3,186評論 2 9
  • 基本排序 Sorting Basicskey函數(shù)Key Functionsoperator庫函數(shù)自定義排序( Op...
    六尺帳篷閱讀 2,667評論 0 4
  • 1.簡介插入排序(Insertion Sort)的算法描述是一種簡單直觀的排序算法。它的工作原理是通過構(gòu)建有序序列...
    AngerCow閱讀 496評論 0 1
  • 你好哇,我是春華。 一名大二英語專業(yè)在讀生。 鐘愛玫瑰與風,認為這便是宇宙浩瀚的溫柔。 2020我為自己立下了很多...
    諸葛春華閱讀 124評論 0 0
  • 今天用在課程上學到的方法,讓先生和孩子撕紙,撕完后兒子一個洞洞,先生兩個洞洞。同樣的紙,同樣的指令,同樣的做法,得...
    陳QX閱讀 113評論 0 2

友情鏈接更多精彩內(nèi)容