掌握 Python 字典排序的最新功能與實用技巧

目錄

介紹 Python 字典排序

在 Python 中,字典(Dict)是一種非常有用的資料結構,能夠讓我們快速查找及存取資料。然而,字典本身並不支援直接排序,因此當我們需要對字典中的資料進行排序時,會面臨挑戰。

使用 sorted() 函式進行字典排序

在 Python 2025 中,我們可以使用 sorted() 函式來對字典進行排序。這個函式會返回一個排序後的列表,而不會改變原有的字典內容。


# 定義一個字典
my_dict = {
    'c': 3,
    'a': 1,
    'b': 2
}

# 使用 sorted() 函式對字典的鍵進行排序
sorted_keys = sorted(my_dict)

# 印出排序後的鍵列表
print(sorted_keys)

# 輸出結果:
# ['a', 'b', 'c']

根據字典值進行排序

如果我們想要根據字典中的值進行排序,可以使用 sorted() 函式的 key 參數,這樣可以指定排序的依據:


# 定義一個字典
my_dict = {
    'c': 3,
    'a': 1,
    'b': 2
}

# 使用 sorted() 函式根據字典的值進行排序
sorted_by_value = sorted(my_dict, key=my_dict.get)

# 印出排序後的鍵列表
print(sorted_by_value)

# 輸出結果:
# ['a', 'b', 'c']

使用 OrderedDict 進行排序

除了使用 sorted() 函式外,我們還可以使用 collections 模組中的 OrderedDict 類別來對字典進行排序。這樣可以返回一個排序後的字典,且不會改變原有的字典:


# 引入 collections 模組
import collections

# 定義一個字典
my_dict = {
    'c': 3,
    'a': 1,
    'b': 2
}

# 使用 OrderedDict 類別對字典進行排序
sorted_dict = collections.OrderedDict(sorted(my_dict.items()))

# 印出排序後的字典
print(sorted_dict)

# 輸出結果:
# OrderedDict([('a', 1), ('b', 2), ('c', 3)])

錯誤排除與最佳實踐

在使用字典排序的過程中,可能會遇到一些常見錯誤,例如:

  • KeyError:當您試圖排序一個不存在的鍵時,會引發此錯誤。請確保鍵存在於字典中。
  • TypeError:如果字典中的值類型不一致,例如混合了整數和字串,排序時會出現類型錯誤。建議先統一類型再進行排序。

延伸應用

字典排序可以用於多種場景,例如:

  • 對學生的成績進行排序,顯示成績排名。
  • 根據商品價格對庫存進行排序,便於管理。
  • 在資料分析中,根據特定指標對資料進行排序,以便於視覺化呈現。

總結

總而言之,Python 中的字典是一種非常有用的資料結構,儘管它本身不支援排序,但我們可以透過 sorted() 函式和 collections 模組中的 OrderedDict 來實現字典的排序。這些方法不僅簡單易用,還能夠滿足多種實際需求。

Q&A(常見問題解答)

Q1: 如何對字典進行反向排序?

A1: 可以在 sorted() 函式中加入 reverse=True 參數來實現反向排序。

Q2: 可以對嵌套字典進行排序嗎?

A2: 是的,可以使用自定義的 key 函式來對嵌套字典進行排序。

Q3: Python 字典的排序性能如何?

A3: Python 的排序算法基於 Timsort,具有 O(n log n) 的時間複雜度,性能表現良好。

發佈留言