[英]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.