Python3 字典创建详解
字典(Dictionary)是 Python 中非常重要且常用的数据结构。它以键值对(Key-Value Pair)的形式存储数据,类似于现实生活中的字典,通过键来查找对应的值。本教程将带你了解 Python3 中创建字典的各种方法,让你轻松上手。
1. 创建空字典
可以使用一对花括号 {}
或者内置函数 dict()
来创建一个空字典。
# 使用花括号创建空字典
d = {}
print(type(d)) # 输出: <class 'dict'>
print(d) # 输出: {}
# 使用 dict() 函数创建空字典
d = dict()
print(d) # 输出: {}
print(type(d)) # 输出: <class 'dict'>
type()
函数用于检查变量的类型。可以看到,通过这两种方法创建的变量 d
都是字典类型。
2. 创建带有初始值的字典
以下介绍几种创建带有初始值的字典的方法:
2.1 键值对 (Key-Value Pairs)
这是最常见的创建字典的方式。在花括号 {}
中使用逗号分隔一系列 键: 值
对。键和值之间用冒号 :
分隔。
d = {"yr": 20, "name": "Ed", 18: True}
print(d) # 输出: {'yr': 20, 'name': 'Ed', 18: True}
在这个例子中,"yr"
、"name"
和 18
是键,而 20
、"Ed"
和 True
是对应的值。 键可以是字符串、数字或元组等不可变类型,值可以是任何类型。
2.2 (键, 值) 元组序列
可以将 (键, 值)
元组的序列作为参数传递给 dict()
函数来创建字典。
l = [("yr", 20), ("name", "Ed"), (18, True)]
d = dict(l)
print(d) # 输出: {'yr': 20, 'name': 'Ed', 18: True}
这种方法适用于当你已经有一个包含键值对的列表或元组时。
2.3 关键字/命名参数
可以将键和值作为关键字参数传递给 dict()
函数。
d = dict(yr=20, name="Ed", is18=True)
print(d) # 输出: {'yr': 20, 'name': 'Ed', 'is18': True}
这种方法的一个限制是字典的键只能是字符串类型,并且键的名称必须符合 Python 标识符的命名规则(例如,不能以数字开头,不能包含空格等)。
2.4 键列表和值列表
有时候,键和值分别存储在不同的列表中,这时可以使用 zip()
函数将它们组合成键值对,然后传递给 dict()
函数。
keys = ["yr", "name", 18]
values = [20, "Ed", True]
# 使用 zip() 函数将两个列表组合成元组对
zipped = zip(keys, values)
print(list(zipped)) # 输出: [('yr', 20), ('name', 'Ed'), (18, True)]
# 使用 dict() 函数将压缩后的元组对转换为字典
d = dict(zip(keys, values))
print(d) # 输出: {'yr': 20, 'name': 'Ed', 18: True}
zip()
函数将多个可迭代对象中对应位置的元素打包成一个个元组,然后返回由这些元组组成的迭代器。
2.5 带默认值的键
dict.fromkeys(iterable[, value])
方法可以创建一个新字典,其中 iterable
的项作为键,所有键对应的值都设置为同一个可选值(默认值为 None
)。
keys = ["yr", "name", 18]
# 创建所有键的值都为 None 的字典
d = dict.fromkeys(keys)
print(d) # 输出: {'yr': None, 'name': None, 18: None}
# 创建所有键的值都为 0 的字典
d = dict.fromkeys(keys, 0)
print(d) # 输出: {'yr': 0, 'name': 0, 18: 0}
这种方法适用于需要快速创建一个具有相同默认值的字典的情况。
本教程介绍了 Python3 中创建字典的多种方法,包括:
- 使用
{}
创建空字典 - 使用
dict()
创建空字典 - 使用键值对创建字典
- 使用元组序列创建字典
- 使用关键字参数创建字典
- 使用键列表和值列表创建字典
- 使用
dict.fromkeys()
创建具有默认值的字典