我在Python中列出了以下列表。如何在Python中對以下結構進行排序
[[53.60495722746216, 'Percent Cats'],
[45.298311033121294, 'Percent Dogs'],
[1.0967317394165388, 'Percent Horses']]
現在我想要動物的百分比最高。在這種情況下,它將是Cats
。
如何對此結構進行排序以獲取值?
我在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'
後者的代碼也能發揮作用,因爲sequence objects may be compared to other objects with the same sequence type:
比較操作按字典訂購:首先將前兩項 項目進行比較,如果它們不同,則確定 的結果裏森;如果它們相等,則比較接下來的兩個項目, 等等,直到任一序列被耗盡。如果兩個序列的所有項目 比較相等,則序列被認爲是相等的。
a = [[53.60495722746216, 'Percent Cats'], [45.298311033121294, 'Percent Dogs'], [1.0967317394165388, 'Percent Horses']]
print sorted(a, key=lambda x:x[0], reverse=True)[0]
你想要單個值還是實際排序的列表? –
下面是一個簡單的如何對Python進行排序的指南:https://docs.python.org/2.7/howto/sorting.html。相同的技術也適用於heapq和itertools模塊的* min()*,* max()*,* nsmallest()*,* nlargest()*和* groupby()*。 –