d[k]
建立索引,以及使用 k in d
進行主要成員測試;這兩項作業都需要固定時間。凍結的字典可變動,也可透過指派給 d[k]
或呼叫特定方法來更新。字典是可以疊代的,疊代作業會按照插入順序產生鍵的序列。透過更新與現有鍵相關聯的值,疊代順序不會受到影響,但會移除再重新插入鍵,進而影響疊代順序。d = {0: 0, 2: 2, 1: 1} [k for k in d] # [0, 2, 1] d.pop(2) d[0], d[2] = "a", "b" 0 in d, "a" in d # (True, False) [(k, v) for k, v in d.items()] # [(0, "a"), (1, 1), (2, "b")]
建立字典的方法有四種:
- 字典運算式
{k: v, ...}
會產生具有指定鍵/值項目的新字典,而且這些字典會依照在運算式中顯示的順序插入。如果有任何兩個鍵運算式產生相同的值,評估就會失敗。 - 字典理解
{k: v for vars in seq}
會產生新的字典,該字典會以迴圈疊代順序插入每個鍵/值組合。允許重複項目:指定鍵的第一個插入項目會決定其在序列中的位置,最後一個插入值則決定其相關值。{k: v for k, v in (("a", 0), ("b", 1), ("a", 2))} # {"a": 2, "b": 1} {i: 2*i for i in range(3)} # {0: 0, 1: 2, 2: 4}
- 呼叫內建 dict 函式時,會傳回包含指定項目的字典,該字典是以引數順序插入,並在命名前插入位置引數。與理解方式一樣,系統允許重複的鍵。
- 聯集運算式
x | y
結合兩個現有字典來產生新的字典。如果兩個字典都有共同的索引鍵k
,則右側字典的鍵值 (也就是y[k]
) 則會勝出。union 運算子的|=
變體會修改原定的字典。例如:d = {"foo": "FOO", "bar": "BAR"} | {"foo": "FOO2", "baz": "BAZ"} # d == {"foo": "FOO2", "bar": "BAR", "baz": "BAZ"} d = {"a": 1, "b": 2} d |= {"b": 3, "c": 4} # d == {"a": 1, "b": 3, "c": 4}
成員
關閉
None dict.clear()從字典中移除所有項目。
get
unknown dict.get(key, default=None)如果
key
在字典中,則傳回 key
的值,否則傳回 default
。如未提供 default
,則預設值為 None
,因此這個方法絕不會擲回錯誤。
參數
參數 | 說明 |
---|---|
key
|
必要 要尋找的金鑰。 |
default
|
default = None 如果找不到索引鍵,系統會使用預設值 (而非「None」)。 |
items
list dict.items()傳回鍵/值元組的清單:
{2: "a", 4: "b", 1: "c"}.items() == [(2, "a"), (4, "b"), (1, "c")]
金鑰
list dict.keys()傳回索引鍵清單:
{2: "a", 4: "b", 1: "c"}.keys() == [2, 4, 1]
流行樂
unknown dict.pop(key, default=unbound)從字典中移除
key
,然後傳回相關聯的值。如果找不到具備該鍵的項目,請移除任何內容並傳回指定的 default
值;如未指定預設值,則會傳回失敗。
參數
參數 | 說明 |
---|---|
key
|
必要 金鑰。 |
default
|
預設 = 無繫結 如果沒有鍵,則此為預設值。 |
彈出項目
tuple dict.popitem()從字典中移除並傳回第一個
(key, value)
組合。popitem
有助於以破壞性的方式透過字典反覆疊代,如同設定的演算法一般。如果字典沒有內容,popitem
呼叫就會失敗。設為預設
unknown dict.setdefault(key, default=None)如果
key
在字典中,系統會傳回這個值。如果沒有,請插入值為 default
的鍵並傳回 default
。default
預設為 None
。
參數
參數 | 說明 |
---|---|
key
|
必要 金鑰。 |
default
|
default = None 如果沒有按鍵,則此為預設值。 |
update
None dict.update(pairs=[], **kwargs)先使用選用的位置引數
pairs
更新字典,再使用選用的關鍵字引數。如果位置引數存在,則必須為字典、可疊代或無。如果是字典,系統會將其鍵/值組合插入這個字典。如果是可疊代項目,則必須提供一系列對組 (或其他長度為 2 的可疊代項目),系統會將每組組合視為鍵/值組合,進行插入。
每個關鍵字引數 name=value
都會使名稱/值組合插入這個字典。
參數
參數 | 說明 |
---|---|
pairs
|
預設 = [] 字典或項目清單。項目必須是元組或清單僅含兩個元素:鍵、值。 |
kwargs
|
必填 其他項目的字典。 |
值
list dict.values()會傳回值清單:
{2: "a", 4: "b", 1: "c"}.values() == ["a", "b", "c"]