深入了解 Python 的 sorted() 函式:功能、應用與最佳實踐(2025 最新語法)

目錄

深入了解 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 函式。

發佈留言