日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

python 关于排序的问题

發布時間:2025/3/20 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 关于排序的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

排序

簡單講一下排序的兩個方法(python自帶的)

  • 一個是iterable.sort(key, reverse)

  • 一個sorted(iterable, key, reverse)

主要的區別就是前者直接對數據進行覆蓋式的排序,后者是用一個新的變量接受排序的返回值,原數據不影響

另外一點:他們接受的參數一個是key(排序的關鍵字),一個是reverse(是否降序,True為降序),默認是升序(默認是False)

接下來我們來說一下排序的一些技巧吧

In [8]: a = [('wjh', 18, 180), ('zy', 17, 180), ('mm', 18, 185), ('xx', 16, 180)]In [9]: a Out[9]: [('wjh', 18, 180), ('zy', 17, 180), ('mm', 18, 185), ('xx', 16, 180)]

定義了一個包含四個元組的列表,分別對應姓名,年齡,身高(這里(不可變)也體現了元組的強大)

''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' In [13]: a Out[13]: [('wjh', 18, 180), ('zy', 17, 180), ('mm', 18, 185), ('xx', 16, 180)]In [14]: sorted(a) Out[14]: [('mm', 18, 185), ('wjh', 18, 180), ('xx', 16, 180), ('zy', 17, 180)]

直接進行排序,可以看出它選擇了索引為0的元素進行了排序(字符串排序abcd…xyz)

In [16]: sorted(a, key=lambda li: li[1]) Out[16]: [('xx', 16, 180), ('zy', 17, 180), ('wjh', 18, 180), ('mm', 18, 185)]

現在定義對索引為1的元素(就是年齡)進行排序,可以看出年齡相同時,后面的身高默認按照升序進行了排序

''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' In [21]: sorted(a, key=lambda li: li[1], reverse=True) Out[21]: [('wjh', 18, 180), ('mm', 18, 185), ('zy', 17, 180), ('xx', 16, 180)]

現在對年齡進行降序排序,可以看出,相同的年齡,后面還是默認按照升序排序了

In [31]: sorted(a, key=lambda li: (li[1], li[2])) Out[31]: [('xx', 16, 180), ('zy', 17, 180), ('wjh', 18, 180), ('mm', 18, 185)]

現在我們先按照年齡升序排序,再按照身高升序排序,也實現了

這里也說明排序可以接受多個參數的排序

然后我們來試試降序

In [32]: sorted(a, key=lambda li: (li[1], li[2]), reverse=True) Out[32]: [('mm', 18, 185), ('wjh', 18, 180), ('zy', 17, 180), ('xx', 16, 180)]

格式就是這么個格式,是可以多參數進行升降序排序的

總結

以上是生活随笔為你收集整理的python 关于排序的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。