python3排序 sorted(key=lambda)


使用python對列表(list)進行排序,說簡單也簡單,說復雜也復雜,我一開始學的時候也搞不懂在說什么,只能搜索一些英文文章看看講解,現在積累了一些經驗,寫在這里跟大家分享,我們通過例子來詳細解釋一下函數sorted的具體用法:

  1. 先創建一個列表a                                                                                                                                                       

  2.               

  3. 直接使用sorted方法,返回一個列表就是排序好的                                                                                                             

  4.                                                                                                                                              

  5. 假如a是一個由元組構成的列表,這時候就麻煩了,我們需要用到參數key,也就是關鍵詞,看下面這句命令,lambda是一個隱函數,是固定寫法,不要寫成別的單詞;x表示列表中的一個元素,在這里,表示一個元組,x只是臨時起的一個名字,你可以使用任意的名字;x[0]表示元組里的第一個元素,當然第二個元素就是x[1];所以這句命令的意思就是按照列表中第一個元素排序                                                                   

  6.             

  7. 按照第二個元素排序:                                                                                               

  8.      

  9. 我們還可以使用reverse參數實現倒序排列                                                                                                   

  10.      

  11.  python3 取消了cmp 參數,可以用functools.cmp_to_key 代替   參考:https://www.zhihu.com/question/30389643?sort=created

key=lambda 元素: 元素[字段索引]

print(max(C, key=lambda x: x[0]))   

x:x[]字母可以隨意修改,求最大值方式按照中括號[]里面的維度,[0]按照第一維,[1]按照第二維。

 

2、具體代碼用法及輸出結果如下:
2.1、取第1維
num = [(1,2.5), (1.5, 3.2), (1.3, 4.0), (2.2, 1.8)]
y,z = max(num, key=lambda x:x[0])
print(y, z)
相當於找4組坐標的第1個數的最大值,顯然為2.2,因此結果如下: 

 

2.1、取第2維 
num = [(1,2.5), (1.5, 3.2), (1.3, 4.0), (2.2, 1.8)]
y,z = max(num, key=lambda x:x[1])
print(y, z)
相當於找4組坐標的第2個數的最大值,顯然為4.0,因此結果如下: 


————————————————
版權聲明:本文為CSDN博主「Aventador_SV」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/lyq_12/article/details/86594935


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM