Skip to content

如何创建字典

可以使用一对花括号 {} 或使用内置函数 dict()(也是一个构造函数)来创建空字典。

python
>>> d = {}
>>> type(d)
<class 'dict'>

>>> d = dict()
>>> d
{}
>>> type(d)
<class 'dict'>

要创建具有一些初始值的新字典,可以使用:

键: 值 对 (Key: Value Pairs)

在花括号 {} 中使用逗号分隔的一系列 键: 值 对。

python
>>> d = {"yr": 20, "name": "Ed",
...       18: True}
>>> d
{'yr': 20, 'name': 'Ed', 18: True}

(键, 值) 元组序列 (Sequence of (key, value) Tuples)

可以将 (键, 值) 元组的序列作为参数传递给 dict() 函数。

python
>>> l = [("yr",20), ("name","Ed"),
...      (18,True)]
>>> d = dict(l)
>>> d
{'yr': 20, 'name': 'Ed', 18: True}

关键字/命名参数 (Keyword/Named Arguments)

可以将键和值作为关键字参数传递给 dict() 函数。

python
>>> d = dict(yr=20, name="Ed",
...          is18=True)
>>> d
{'yr': 20, 'name': 'Ed', 'is18': True}

这种方法的一个限制是字典的键只能是字符串类型,并且它们的名称必须在标识符的命名空间内。

键列表和值列表 (Key and Value Lists)

可能存在需要合并两个列表的情况,其中键在一个列表中,相应的值在另一个列表中。

内置的 zip() 函数可用于将两个列表组合成元组对。

可以将压缩后的迭代器作为参数传递给 dict() 以创建新的映射集合。

python
>>> m = ["yr", "name", 18]
>>> n = [20, "Ed", True]
>>> list(zip(m, n))
[('yr', 20), ('name', 'Ed'), (18, True)]
>>> dict(zip(m, n))
{'yr': 20, 'name': 'Ed', 18: True}

带默认值的键 (Keys with Default Value)

dict.fromkeys(iterable[, value]) 可用于创建新字典,其中 iterable 的项作为键,并带有与键对应的可选值(默认 - None)。

python
>>> l = ["yr", "name", 18]
>>> dict.fromkeys(l)
{'yr': None, 'name': None, 18: None}
>>> dict.fromkeys(l, 0)
{'yr': 0, 'name': 0, 18: 0}