dict 是內建類型,代表關聯對應或字典。字典支援使用 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 函式的呼叫會傳回字典,其中包含指定的項目,這些項目會依引數順序插入,位置引數會插入在命名引數之前。與 comprehension 一樣,重複的鍵是允許的。
- 聯集運算式
x | y
會結合兩個現有的字典,產生新的字典。如果兩個字典有共同的鍵k
,則以右側字典的鍵值 (也就是y[k]
) 為準。聯集運算子的|=
變體會就地修改字典。範例: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
|
預設值為 None 如果找不到鍵,則會使用預設值 (而非 None)。 |
項目
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
|
required The key. |
default
|
預設值為 unbound 預設值。 |
popitem
tuple dict.popitem()從字典中移除並傳回前
(key, value)
對組。popitem
可用於以破壞性方式對字典進行疊代,這類操作通常用於集合演算法。如果字典沒有任何內容,popitem
呼叫就會失敗。
setdefault
unknown dict.setdefault(key, default=None)如果字典中含有
key
,則傳回其值。如果不是,請插入值為 default
的鍵,並傳回 default
。default
的預設值為 None
。
參數
參數 | 說明 |
---|---|
key
|
required The key. |
default
|
default 為 None ,如果沒有鍵,則為預設值。 |
update
None
dict.update(pairs=[], **kwargs)
先使用選用的位址引數 pairs
更新字典,再使用選用的關鍵字引數更新字典。如果有位址引數,則必須是字典、可迴圈項目或 None。如果是字典,則系統會將鍵/值組合插入這個字典。如果是可枚舉項目,則必須提供一組序列 (或長度為 2 的其他可枚舉項目),每個項目都會視為要插入的鍵/值組合。每個關鍵字引數 name=value
都會導致名稱/值組合插入這個字典。
參數
參數 | 說明 |
---|---|
pairs
|
預設值為 [] 字典或項目清單。項目必須是元組或清單,且只含有兩個元素:鍵和值。 |
kwargs
|
required Additional 字典項目。 |
值
list dict.values()傳回值清單:
{2: "a", 4: "b", 1: "c"}.values() == ["a", "b", "c"]