如何创建字典
可以使用一对花括号 {}
或使用内置函数 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}