Python 是一種非常流行且強大的程式語言,擁有多種內建函數,其中之一就是 `sorted()` 函數。`sorted()` 函數能夠對任何可迭代的序列進行排序,並返回排序後的序列副本。隨著 Python 的更新,這篇文章將提供 2025 年最新的語法和最佳實踐。

sorted() 函數的基本用法

`sorted()` 函數的基本用法非常簡單。只需將一個序列傳入函數中,並返回排序後的序列副本:

“`python
# 將一個序列傳入 sorted() 函數中
my_list = [3, 5, 1, 4, 2] sorted_list = sorted(my_list)

# 輸出排序後的序列副本
print(sorted_list)
# [1, 2, 3, 4, 5] “`

這段代碼示範了如何使用 `sorted()` 函數對一個整數列表進行排序。`sorted()` 函數不會改變原始列表,而是返回一個新的排序列表,這是其主要優點之一。

sorted() 函數的高級用法

`sorted()` 函數還可以接受多個參數,包括一個可選的 `key` 參數,這用於指定排序時使用的比較標準。以下是一個使用 `key` 參數的範例:

“`python
# 定義一個包含字典的列表
my_list = [{‘name’: ‘Alice’, ‘age’: 25}, {‘name’: ‘Bob’, ‘age’: 20}, {‘name’: ‘Charlie’, ‘age’: 30}]

# 使用 key 參數根據年齡排序
sorted_list = sorted(my_list, key=lambda x: x[‘age’])

# 輸出排序後的序列副本
print(sorted_list)
# [{‘name’: ‘Bob’, ‘age’: 20}, {‘name’: ‘Alice’, ‘age’: 25}, {‘name’: ‘Charlie’, ‘age’: 30}] “`

在這個範例中,我們利用 `lambda` 函數作為 `key` 參數,指定根據每個字典的 `age` 鍵進行排序。這樣可以靈活地對複雜數據結構進行排序。

錯誤排除

在使用 `sorted()` 函數時,可能會遇到以下常見錯誤:

1. **TypeError**:當排序的序列中包含不同類型的元素時,會引發類型錯誤。確保序列中的所有元素都可以進行比較。

“`python
my_list = [3, ‘apple’, 1] sorted_list = sorted(my_list) # 這將引發 TypeError
“`

2. **ValueError**:如果使用 `cmp` 參數時,Python 3 不再支持。改用 `key` 參數來進行自定義排序。

延伸應用

`sorted()` 函數非常適合用於數據分析和處理,特別是在需要對大型數據集進行排序時。你可以將其與其他 Python 庫(如 Pandas)結合使用,以進行更複雜的數據操作。

若想深入學習 Python 排序及數據處理,建議參考 [這篇 Python 教學文章](https://vocus.cc/article/5e5a4e3a4e3c7a001f3d4e3b) 以獲取更多實用資訊。

總結

`sorted()` 函數是 Python 中一個非常有用的函數,能夠對序列進行排序,並返回排序後的序列副本。它支援多種參數配置,讓使用者能夠靈活地進行自定義排序。無論是簡單的列表還是複雜的數據結構,`sorted()` 都能輕鬆應對。

Q&A(常見問題解答)

**Q1: sorted() 與 sort() 有什麼不同?**
A1: `sorted()` 函數返回一個新的排序列表,而 `sort()` 函數是列表的方法,會直接對原始列表進行排序且不返回任何值。

**Q2: 如何對字串進行排序?**
A2: `sorted()` 函數可以直接對字串進行排序,會根據字母順序返回一個排序後的字串列表。例如,`sorted(“banana”)` 返回 `[‘a’, ‘a’, ‘a’, ‘b’, ‘n’, ‘n’]`。

**Q3: 我可以使用 sorted() 函數對自定義對象進行排序嗎?**
A3: 是的,你可以使用 `key` 參數來指定排序依據,這使得它可以對任何可迭代的對象進行排序,包括自定義類的實例。

Categorized in:

Tagged in: