d[k] 进行索引,并使用 k in d
进行键成员资格测试;这两种操作都采用常量时间。未冻结的字典是可变的,可以通过为 d[k] 赋值或调用某些方法进行更新。字典是可迭代的;迭代会按插入顺序生成键序列。更新与现有键关联的值不会影响迭代顺序,但移除然后重新插入键会影响迭代顺序。
d = {0: "x", 2: "z", 1: "y"}
[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, "y"), (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])胜出。并集运算符的|=变体会在适当位置修改字典。示例: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}
成员
clear
None dict.clear()get
unknown dict.get(key, default=None)
key 位于字典中,则返回 key 的值,否则返回 default。如果未提供 default,则默认为
None,因此此方法永远不会抛出错误。
参数
| 参数 | 说明 |
|---|---|
key
|
必需 要查找的键。 |
default
|
默认值为 None如果找不到键,则使用的默认值(而不是 None)。 |
items
list dict.items()
{2: "a", 4: "b", 1: "c"}.items() == [(2, "a"), (4, "b"), (1, "c")]keys
list dict.keys()
{2: "a", 4: "b", 1: "c"}.keys() == [2, 4, 1]pop
unknown dict.pop(key, default=unbound)
key,并返回关联的值。如果未找到具有该键的条目,则不移除任何内容并返回指定的 default
值;如果未指定默认值,则改为失败。
参数
| 参数 | 说明 |
|---|---|
key
|
必需 键。 |
default
|
默认值为 unbound如果键不存在,则为默认值。 |
popitem
tuple dict.popitem()
(key, value) 对。popitem
对于以破坏性方式迭代字典非常有用,这在集合算法中经常使用。如果字典为空,则 popitem 调用会失败。
setdefault
unknown dict.setdefault(key, default=None)
key 位于字典中,则返回其值。否则,插入键,其值为 default,并返回 default。default 默认为 None。
参数
| 参数 | 说明 |
|---|---|
key
|
必需 键。 |
default
|
默认值为 None如果键不存在,则为默认值。 |
update
None dict.update(pairs=[], **kwargs)pairs 更新字典,然后使用可选的关键字实参更新字典
如果存在位置实参,则它必须是字典、可迭代对象或 None。
如果是字典,则其键值对会插入到此字典中。如果是可迭代对象,则它必须提供一系列对(或其他长度为 2 的可迭代对象),每个对都被视为要插入的键值对。
每个关键字实参 name=value 都会导致将名称/值对插入到此字典中。
参数
| 参数 | 说明 |
|---|---|
pairs
|
默认值为 []可以是字典或条目列表。条目必须是包含两个元素的元组或列表:键、值。 |
kwargs
|
必需 其他条目的字典。 |
values
list dict.values()
{2: "a", 4: "b", 1: "c"}.values() == ["a", "b", "c"]