簡體   English   中英

如何在Python中對以下結構進行排序

[英]How to sort the following structure in Python

我在Python中有以下列表列表。

[[53.60495722746216, 'Percent Cats'],
 [45.298311033121294, 'Percent Dogs'],
 [1.0967317394165388, 'Percent Horses']]

現在,我希望動物的百分比最高。 在這種情況下,它將是Cats

如何對這種結構進行排序以獲取價值?

如果只需要獲取一個值,則無需對列表進行排序。 將內置的max函數與這樣的自定義排序函數一起使用

In [3]: max(l, key=lambda x: x[0])[1] # compare first elements of inner lists
Out[3]: 'Percent Cats'

甚至

In [4]: max(l)[1] # compare lists directly
Out[4]: 'Percent Cats'

后面的代碼也可以工作,因為可以將序列對象與具有相同序列類型的其他對象進行比較

比較使用字典順序:首先比較前兩個項目,如果它們不同,則確定比較的結果; 如果它們相等,則比較下兩個項目,依此類推,直到用盡任何一個序列。 如果兩個序列的所有項目比較相等,則認為序列相等。

a = [[53.60495722746216, 'Percent Cats'], [45.298311033121294, 'Percent Dogs'], [1.0967317394165388, 'Percent Horses']]
print sorted(a, key=lambda x:x[0], reverse=True)[0]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM