回答
list.sort
允許您指定一個鍵,它基本上是排序列表時用於列表中每個項目的東西。該鍵是一個以該項目爲參數的函數。默認情況下,它是標識,因此它總是返回原始對象,但是您可以通過指定不同的函數輕鬆更改該標識。
在你的情況,你將要在內部列表返回第3項:
biglist.sort(key=lambda x: x[2])
請注意,這不會指定一個很好的排序,當年齡不是唯一的(他們通常不是)。因此,您可能希望使用名稱指定第二個目的,例如:
biglist.sort(key=lambda x: (x[2], x[0]), reverse=True)
:
biglist.sort(key=lambda x: (x[2], x[0]))
爲了得到一個從大到小的順序,你將不得不在排序調用還設置reverse=True
注意,這樣做也會影響名字的順序,所以你會得到一個下降的年齡和的名字。如果你不想這樣做,你可以對列表進行兩次排序(分別命名,然後按年齡遞減),或者你可以欺騙一下:你可以假設沒有活人會超過200歲 - 或者說1000是超級安全的,所以,你可以通過1000-age
排序上升獲得降序排序上age
:
biglist.sort(key=lambda x: (1000 - x[2], x[0]))
或者,而不是那個技巧 - 只是'-x [2]'所以它被否定 –
@JonClements哦,是的。這也適用於xD – poke
import operator
myBigList.sort(key=operator.itemgetter(2), reverse=True)
- 1. 對列表對象排序列表
- 2. 排序對象列表的列表c#
- 3. 在Erlang中對列表進行排序
- 4. 在Groovy中對列表進行排序
- 5. 在Prolog中對列表進行排序
- 6. 在C中對列表進行排序#
- 7. 在類中對列表進行排序
- 8. 在C#中對下拉列表排序
- 9. 在Java中對列表列表進行排序
- 10. 在可排序列表中對齊不同表格的列
- 11. 排序在java中有列表的對象的列表
- 12. 排序對象列表
- 13. Python排序 - 對象列表
- 14. 排序列表對象
- 15. R對象排序列表
- 16. 排序對象列表
- 17. 排序對象列表
- 18. 排序對象列表
- 19. 在排序列表
- 20. 在Django中排序列表
- 21. 在bash中排序列表
- 22. 在C#中排序列表#
- 23. 在c中排序列表#
- 24. 在PHP中排序列表
- 25. 在Clojure中排序列表
- 26. 鏈接列表中的排序列表
- 27. F#列表中的排序列表F#
- 28. 按多列對C#列表排序
- 29. 對象列表降序排列
- 30. 按多列對C++列表排序
有你看了'list.sort的文檔()'方法(特別是'鍵'參數)? – Blender
請注意,我爲'python sort'獲得的第一個Google結果是關於該主題的官方[howto](https://wiki.python.org/moin/HowTo/Sorting/)的鏈接,其中包括一些類似的例子。 – DSM