Python 提供了兩種對列表進行排序的方法,內置列表方法list.sort()
和內置函數sorted()
。盡管兩者都會對列表的元素進行排序,但如果使用不當,它們可能會產生意外或不希望的結果。
兩者之間的主要區別在於list.sort()
將對列表進行就地排序,改變其索引並返回None
,而sorted()
將返回一個新的排序列表,而原始列表保持不變。另一個區別是sorted()
接受任何可迭代的 whilelist.sort()
是list
類的方法,並且只能與列表一起使用。
nums = [2, 3, 1, 5, 6, 4, 0]
print(sorted(nums)) # [0, 1, 2, 3, 4, 5, 6]
print(nums) # [2, 3, 1, 5, 6, 4, 0]
print(nums.sort()) # None
print(nums) # [0, 1, 2, 3, 4, 5, 6]
兩者list.sort()
和sorted()
都具有相同的key
可選reverse
參數,並且可以在進行比較之前在每個列表元素上調用。
list.sort()
應該在想要改變列表並且不需要檢索元素的原始順序時使用。另一方面,sorted()
當要排序的對象是一個可迭代對象(例如列表、元組、字典、字符串)並且期望的結果是一個包含所有元素的排序列表時,應該使用它。