Python 集合和資料結構備忘單

Python 集合模組和本機資料結構的完整指南。學習清單、字典、集合、元組、雙端佇列和命名元組。

本機內建類型

標準容器類別本身可用,無需額外導入。

方法/功能文法描述
Listmy_list = [1, 2, 3]任意元素的有序、可變、可索引序列。
Dictionarymy_dict = {"key": "val"}鍵值映射。鍵必須是唯一的且可散列(不可變)。
Setmy_set = {1, 2, 3}獨特的、可散列的項目的無序集合。
Tuplemy_tuple = (1, 2, 3)有序的、不可變的序列。通常用於記錄資料類型。

專業集合模組結構

從集合中導入的結構以實現特定的性能特徵。

方法/功能文法描述
dequefrom collections import deque雙端隊列。支援從兩端快速新增和彈出 O(1)。
defaultdictfrom collections import defaultdict呼叫工廠函數來提供缺失值的字典子類別。
Counterfrom collections import Counter用於計算可哈希物件數量的字典子類別。
namedtuplefrom collections import namedtuple用於建立具有命名欄位的元組子類別的工廠函數。
OrderedDictfrom collections import OrderedDict記住鍵插入順序的字典子類別。

互動式簡報腳本

run_all_cheat_methods.py
在編輯器中執行
# List
my_list = [1, 2, 3]

# Dictionary
my_dict = {"key": "val"}

# Set
my_set = {1, 2, 3}

# Tuple
my_tuple = (1, 2, 3)

# deque
from collections import deque

# defaultdict
from collections import defaultdict

# Counter
from collections import Counter

# namedtuple
from collections import namedtuple

# OrderedDict
from collections import OrderedDict

常見問題解答

什麼時候應該使用雙端隊列而不是列表?

當您需要從兩端進行快速 O(1) 追加和彈出時,請使用 deque(雙端佇列)。列表在前面插入/刪除的複雜度為 O(n)。

defaultdict 是如何運作的?

如果您嘗試存取不存在的按鍵,defaultdict 會自動建立一個預設值(例如,list、int),從而防止出現 KeyErrors。

相關主題

推薦的 Python 資源

透過相關的互動式教學、備忘單和程式碼比較來擴展您的知識。