Python 五大核心資料結構——字串、列表、字典、元組、集合——是編寫高效程式的基石。本文系統整理其建立、存取、修改、運算與最佳實踐,並對比相互轉換與適用場景。
| 運算符 | 說明 | 範例 |
/ | 浮點除法 | 11/5 = 2.2 |
// | 地板除 | 11//5=2, -11//5=-3 |
** | 冪運算 | 11**2=121 |
% | 取餘 | 11%5=1 |
數學模組
import math, fractions
fractions.Fraction(1,3) # 精確分數 1/3
math.sin(math.pi/2) # 1.0
math.tan(math.pi/4) # 0.999...
列表 - 可變有序序列
建立與切片
a_list = ['a', 'b', 'mpilgrim', 'z', 'example']
a_list[-1] # 'example'
a_list[1:3] # ['b', 'mpilgrim']
a_list[:3] # 前三個
a_list[3:] # 從第4個到結束
a_list[:] # 淺拷貝(新列表,相同元素)
新增元素
a_list = ['a']
a_list + [2.0, 3] # 合併產生新列表
a_list.append(True) # 尾端新增單一元素
a_list.extend(['four']) # 尾端批次新增
a_list.insert(0, 'Ω') # 指定位置插入
查詢與移除
a_list.count('new') # 計數
'new' in a_list # 成員測試
a_list.index('new') # 首次出現索引
del a_list[1] # 刪除指定索引
a_list.remove('new') # 刪除首個匹配值
a_list.pop() # 彈出並回傳最後元素
a_list.pop(0) # 彈出並回傳首個元素
元組 - 不可變有序序列
a_tuple = ("a", "b", "mpilgrim", "z", "example")
# 僅支援索引、切片、in、count、index
# 不支援 append、remove、assign
元組優勢
- 速度較列表快
- 「寫保護」更安全
- 可作字典鍵(需元素皆不可變)
互轉與解包
tuple(a_list) # 列表轉元組
list(a_tuple) # 元組轉列表
(x, y, z) = ('a', 2, True) # 序列解包
(Monday, ..., Sunday) = range(7) # 連續賦值
集合 - 無序唯一元素容器
建立與基本操作
a_set = {1, 2, 3} # 字面量建立
a_set = set(a_list) # 從列表建立(自動去重)
a_set.add(4) # 新增單一元素
a_set.update({5,6}) # 批次新增
a_set.discard(4) # 移除(不存在不報錯)
a_set.remove(4) # 移除(不存在拋異常)
a_set.pop() # 隨機彈出元素
a_set.clear() # 清空
集合運算
a_set = {2,3,4,5,6,8,9,13}
b_set = {3,4,10,12}
a_set.union(b_set) # 並集
a_set.intersection(b_set) # 交集
a_set.difference(b_set) # 差集 (a-b)
a_set.symmetric_difference(b_set) # 對稱差集
a_set.issubset(b_set) # 子集判斷
b_set.issuperset(a_set) # 超集判斷
字典 - 鍵值對無序映射
建立與存取
a_dic = {'server': 'db.example.org', 'database': 'mysql'}
a_dic['server'] # 取值
a_dic['user'] = 'mark' # 新增/更新
a_dic['User'] = 'mark' # 大小寫敏感,不同鍵
巢狀與混合值
suffixes = {
1000: ['KB','MB','GB','TB'],
1024: ['KiB','MiB','GiB','TiB']
}
suffixes[1024][2] # 'GiB'
布爾語境
空容器([], {}, (), set(), '')為 False,非空為 True。
類型選擇指南
| 需求 | 推薦類型 |
| 頻繁增刪、有序 | 列表 |
| 固定資料、需當鍵、追求速度 | 元組 |
| 去重、集合運算、成員測試 | 集合 |
| 鍵值查找、結構化資料 | 字典 |
- 上一篇文章: Python 實現支援上傳下載的簡易 HTTP 檔案伺服器
- 下一篇文章: Python 多進程變數共享機制深度解析:Manager、Value/Array 與同步鎖
Copyright ©
程式碼之家 All Rights Reserved