目錄
深入了解 Python 的 sorted() 函式
Python 中的 sorted()
函式是一個非常有用的工具,用於對序列進行排序並返回一個新的排序後的序列副本。這個函式可以應用於各種數據類型,包括列表、元組和字典等,並提供靈活的排序選項。
sorted() 函式的基本用法
使用 sorted()
函式時,可以傳入一個可選的參數 key
,這個參數可以接受一個函式,用於指定排序的標準。讓我們通過幾個實作範例來深入了解。
基本排序範例
假設我們有一個包含數字的列表:
numbers = [8, 3, 1, 2, 5, 4, 7, 6]
我們可以使用 sorted()
函式對其進行排序:
sorted_numbers = sorted(numbers)
print(sorted_numbers)
# 輸出: [1, 2, 3, 4, 5, 6, 7, 8]
使用 key 參數進行自定義排序
我們還可以指定一個 key
參數,以自定義排序的標準。以下是一個示範,根據絕對值進行排序:
def get_abs(num):
return abs(num)
sorted_numbers = sorted(numbers, key=get_abs)
print(sorted_numbers)
# 輸出: [1, 2, 3, 4, -5, 6, 7, -8]
錯誤排除與最佳實踐
在使用 sorted()
函式時,以下是一些常見的錯誤及其解決方案:
- 錯誤使用非可排序類型:確保傳遞給
sorted()
的序列中的所有元素都是可比較的。例如,不能將字串與整數混合在同一列表中。 - 未使用 key 參數:如果需要根據特定標準排序,請記得使用
key
參數來達成更精確的排序。
延伸應用
除了基本的排序需求,sorted()
函式還可以用於更複雜的數據結構,例如列表中的字典。以下是一個示範,根據字典中的某個鍵進行排序:
people = [{'name': 'Alice', 'age': 30}, {'name': 'Bob', 'age': 25}, {'name': 'Charlie', 'age': 35}]
sorted_people = sorted(people, key=lambda person: person['age'])
print(sorted_people)
# 輸出: [{'name': 'Bob', 'age': 25}, {'name': 'Alice', 'age': 30}, {'name': 'Charlie', 'age': 35}]
結語
通過上述內容,我們深入探討了 Python 的 sorted()
函式,包括其基本用法、自定義排序、錯誤排除及延伸應用。掌握這個函式能夠幫助你在處理數據時更加高效。
Q&A(常見問題解答)
Q1: sorted() 函式的返回值是什麼?
A1: sorted()
函式返回一個新的排序後的序列副本,原始序列不會被改變。
Q2: sorted() 函式可以排序哪些數據類型?
A2: sorted()
函式可以對列表、元組、字典(根據鍵)等多種可迭代對象進行排序。
Q3: 如何對字典進行排序?
A3: 你可以使用 key
參數指定字典中的某個鍵來進行排序,例如使用 lambda
函式。
—