L[0]。元素有排位順序。d['Java聖經']。元素是鍵值組合,無序號。字典每個元素是一組 鍵: 值(key-value pair),數學上叫映射 mapping。鍵唯一、值可重複。
鍵→值有雜湊表直達;值→鍵只能用迴圈逐一掃。這也是鍵要唯一、用簡單型別的原因。
{'k': v, ...}dict([['k', v]])字典無序:印出不保證照輸入順序,也不能用序號取值。
d[鍵]d.get(鍵, 預設)None),不報錯。| 操作 | 效果 |
|---|---|
d[鍵] = 值 | 鍵不存在 → 新增;存在 → 修改 |
d.setdefault(鍵, 值) | 鍵不存在才新增;存在則不動 |
del d[鍵] | 刪一組鍵值 |
del d | 刪整個字典變數!之後 NameError |
d.clear() | 清空成 {} |
for k in d: 預設就是走鍵sum(d.values()) 加總for k,v in d.items():b = db = d.copy()延續 CH05「變數是名牌」:字典是可變物件,= 只貼第二張名牌。.update() 則用來合併兩個字典(重複鍵覆蓋)。
d[不存在鍵] → KeyError;不確定就用 .get(鍵, 預設)。del d(漏給鍵)會刪掉整個字典,之後 NameError。d[0] 取「第一個」。.get() 不改字典;.setdefault() 在鍵不存在時會新增。= 是別名(連動),要獨立用 .copy()。for 逐一比對;重複鍵後者覆蓋;鍵要不可變型別。追蹤任何字典操作:先想是鍵→值(快)還是值→鍵(慢)、會不會 KeyError、是別名還是複製。