目錄
Python list 使用 sorted 函數排序
在 Python 程式設計中,排序是非常常見的需求。Python 提供了多種排序方法,其中最常用的就是 `sorted` 函數。這篇文章將介紹 `sorted` 函數的最新用法及最佳實踐,幫助您更有效地進行資料排序。
什麼是 sorted 函數?
`sorted` 函數可以對任何可迭代的對象進行排序,並返回一個新的 list,而不會改變原始的資料結構。這使得 `sorted` 函數在處理資料時非常靈活。
基本用法示例
以下是一個簡單的使用範例,展示如何使用 `sorted` 函數對一個 list 進行升序排序:
my_list = [3, 5, 1, 4, 2]
sorted_list = sorted(my_list)
print(sorted_list) # 輸出: [1, 2, 3, 4, 5]
使用 key 參數進行自定義排序
`sorted` 函數還可以接受一個可選的 `key` 參數,它是一個函數,用於指定排序的依據。下面是一個示例,將列表中的字典根據年齡進行排序:
my_list = [
{'name': 'John', 'age': 20},
{'name': 'Bob', 'age': 30},
{'name': 'Alice', 'age': 10},
]
def get_age(item):
return item['age']
sorted_list = sorted(my_list, key=get_age)
print(sorted_list) # 輸出: [{'name': 'Alice', 'age': 10}, {'name': 'John', 'age': 20}, {'name': 'Bob', 'age': 30}]
錯誤排除與調試技巧
在使用 `sorted` 函數時,您可能會遇到以下常見問題:
1. **TypeError**:如果列表中包含不同類型的元素(例如整數與字串),則會引發錯誤。確保所有元素都是相同類型,或在 `key` 函數中進行適當的處理。
2. **排序不符合預期**:檢查 `key` 函數是否正確,並確認其返回的值符合排序需求。
延伸應用
除了基本排序外,您還可以使用 `sorted` 函數進行以下操作:
– 降序排序:將 `reverse` 參數設置為 `True`。
– 排序自定義物件:為自定義類別定義 `__lt__` 方法,使用 `sorted` 進行排序。
“`python
# 降序排序示例
sorted_list_desc = sorted(my_list, key=get_age, reverse=True)
print(sorted_list_desc)
“`
結論
`sorted` 函數是 Python 中一個強大而靈活的工具,可以幫助開發者輕鬆地對資料進行排序。無論是基本的數字排序還是複雜的自定義排序,`sorted` 函數都能滿足您的需求。
Q&A(常見問題解答)
Q1: sorted 函數與 list.sort() 有什麼區別?
A1: `sorted` 函數返回一個新的列表,而 `list.sort()` 會就地修改原始列表。
Q2: 我可以對字典列表進行排序嗎?
A2: 是的,您可以使用 `key` 參數,根據字典中的某個鍵進行排序。
Q3: sorted 函數支持哪些資料類型?
A3: `sorted` 函數支持任何可迭代對象,包括列表、元組、字典等。
—