Python中的List可以存儲各種數據類型的對象,但是在實際的應用中,我們有時候需要對List進行排序。Python提供了多種排序方法,本文將詳細介紹這些方法的使用。
一、sort()方法
sort()方法是Python內置的排序方法,它可以對List進行原地排序,即不需要創建新的List。sort()方法的默認行為是升序排序,但是也可以通過reverse參數進行降序排序。
# 升序排序 a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] a.sort() print(a) # 輸出[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9] # 降序排序 a.sort(reverse=True) print(a) # 輸出[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
sort()方法也支持key參數,可以用於指定自定義的排序規則,例如按照字符串長度進行排序。
# 按照字符串長度排序 a = ['apple', 'banana', 'cat', 'dog', 'elephant'] a.sort(key=len) print(a) # 輸出['cat', 'dog', 'apple', 'banana', 'elephant']
二、sorted()函數
在不想對原始List進行修改的情況下,我們可以使用sorted()函數對List進行排序。與sort()方法不同,sorted()函數會返回一個新的List,而不是在原地排序。
# 升序排序 a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] b = sorted(a) print(b) # 輸出[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9] # 降序排序 b = sorted(a, reverse=True) print(b) # 輸出[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1] # 按照字符串長度排序 a = ['apple', 'banana', 'cat', 'dog', 'elephant'] b = sorted(a, key=len) print(b) # 輸出['cat', 'dog', 'apple', 'banana', 'elephant']
三、list.reverse()方法
list.reverse()方法可以將List進行原地翻轉(即倒序排列)。
a = [1, 2, 3, 4, 5] a.reverse() print(a) # 輸出[5, 4, 3, 2, 1]
四、自定義排序函數
在有些情況下,我們可能需要自定義排序規則。可以使用Python的lambda表達式或定義函數的方式自定義排序規則。
# 按照第二個元素進行排序 a = [(2, 3), (1, 4), (5, 1), (3, 2)] a.sort(key=lambda x: x[1]) print(a) # 輸出[(5, 1), (3, 2), (2, 3), (1, 4)] # 按照年齡和姓名的字母順序進行排序 def custom_sort(x): return (x['age'], x['name']) people = [{'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 20}, {'name': 'Charlie', 'age': 25}, {'name': 'David', 'age': 30}] people.sort(key=custom_sort) print(people) # 輸出[{'name': 'Bob', 'age': 20}, # {'name': 'Alice', 'age': 25}, # {'name': 'Charlie', 'age': 25}, # {'name': 'David', 'age': 30}]
五、小結
本文介紹了Python中List的幾種排序方法,包括sort()方法、sorted()函數、list.reverse()方法和自定義排序函數。對於不同的應用場景,可以選擇不同的排序方法來達到最優的性能和效果。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/237171.html