一、sort方法簡介
sort方法是Python內置列表對象提供的排序方法,它可以對列表中的元素進行排序。sort方法有兩種形式,一種是對原列表進行排序,另一種是創建一個新的排序後的列表。
二、對原列表進行排序
我們可以使用sort方法對列表進行排序,這樣可以直接修改原列表:
lst = [5, 3, 7, 1, 9]
lst.sort()
print(lst)
輸出結果為:[1, 3, 5, 7, 9]
sort方法也允許使用reverse參數來進行降序排序,默認值為False,即升序排序。
lst = [5, 3, 7, 1, 9]
lst.sort(reverse=True)
print(lst)
輸出結果為:[9, 7, 5, 3, 1]
三、創建一個新的排序後的列表
除了可以對原列表進行排序外,sort方法還可以返回一個新的排好序的列表,而不影響原列表。我們可以使用sorted函數來實現這個功能:
lst = [5, 3, 7, 1, 9]
new_lst = sorted(lst)
print(lst)
print(new_lst)
輸出結果為:
[5, 3, 7, 1, 9]
[1, 3, 5, 7, 9]
sorted函數也允許使用reverse參數來進行降序排序,默認值為False,即升序排序。
lst = [5, 3, 7, 1, 9]
new_lst = sorted(lst, reverse=True)
print(lst)
print(new_lst)
輸出結果為:
[5, 3, 7, 1, 9]
[9, 7, 5, 3, 1]
四、排序自定義類型
如果要對自定義類型進行排序,我們需要通過實現該類型的__lt__(「小於」)方法來告訴sort函數如何比較對象。
例如,下面的代碼演示了如何對一個簡單的Person類進行排序,按照年齡升序排序:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __lt__(self, other):
return self.age < other.age
p1 = Person('John', 32)
p2 = Person('Jane', 28)
p3 = Person('Michael', 45)
lst = [p1, p2, p3]
lst.sort()
for p in lst:
print(p.name, p.age)
輸出結果為:
Jane 28
John 32
Michael 45
五、對列表中元素的排序方式進行自定義
在Python中,我們可以用key參數將序列中的每個元素傳遞給一個函數,然後根據該函數的返回值進行排序。即sort方法會根據key函數計算出來的值進行排序。
下面的示例將使用key函數將字元串列表中的元素按照字元串長度進行排序:
lst = ['python', 'java', 'c', 'golang', 'ruby']
lst.sort(key=lambda x: len(x))
print(lst)
輸出結果為:[‘c’, ‘java’, ‘ruby’, ‘python’, ‘golang’]
lambda表達式用於確保排序函數的簡潔性。你可以使用任何可以返回一個值的函數(映射),只要它接受列表成員作為輸入並返回排序鍵。
六、總結
sort方法是Python內置列表對象提供的排序方法,它可以對列表中的元素進行排序。我們可以通過調用sort方法對原列表進行排序,或者使用sorted函數創建一個新的排好序的列表,同時,sort方法和sorted函數都支持傳遞關鍵字參數來自定義排序方式。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/192031.html