1. Python 字典的基础概念
对于 Python 语言来说,字典是非常基础的数据结构之一,它可以存储大量的键值对数据,并且支持对这些数据进行快速的查找和查询。
字典的基本语法如下所示:
# 定义一个空字典
dict_1 = {}
# 定义一个有初始键值对的字典
dict_2 = {"key1": "value1", "key2": "value2", "key3": "value3"}
1.1 字典的查询
字典的查询基本上是通过键来实现的。我们可以使用 dict.get(key, default)
方法来对字典进行查询,其中 key
是要查询的键名,default
是在找不到键名时的默认返回值。
dict_2 = {"name": "Tom", "age": 18, "gender": "male"}
# 查询年龄
age = dict_2.get("age")
print(age) # 18
# 查询身高,返回 None
height = dict_2.get("height")
print(height) # None
# 查询身高,返回 "Unknown"
no_height = dict_2.get("height", "Unknown")
print(no_height) # Unknown
1.2 字典的修改与添加
对于字典的内容修改和添加,可以直接通过 dict[key] = value
的方式实现,如果键名不存在,则会新增一条键值对。
dict_2 = {"name": "Tom", "age": 18, "gender": "male"}
# 修改年龄
dict_2["age"] = 19
# 新增电话号码
dict_2["phone"] = "123456789"
2. Python 字典的高级操作
2.1 字典推导式
类似于列表推导式,Python 还提供了字典推导式的语法。通过字典推导式可以快速地生成一个字典,它的语法如下所示:
dict_1 = {key: value for (key, value) in iterable}
其中的 iterable
表示可迭代对象,它可以是一个 list
、tuple
或 set
等。我们可以通过对可迭代对象的遍历操作来自动生成一个字典,如下所示:
# 生成一个简单的字典
keys = ["A", "B", "C"]
values = [1, 2, 3]
dict_1 = {k:v for (k, v) in zip(keys, values)}
# 生成一个带有条件的字典
dict_2 = {i: i**2 for i in range(10) if i % 2 == 0}
2.2 Python 字典的常用方法
除了上面提到的 get(key, default)
方法之外,Python 还提供了一系列常用的字典方法,这些方法可以帮助我们更加高效地使用字典,并且降低我们代码的复杂度。
2.2.1 dict.keys() 和 dict.values()
这两个方法可以分别返回字典中所有的键和所有的值,并且返回的数据类型都是 list
。
dict_1 = {"name": "Tom", "age": 18, "gender": "male"}
# 返回所有键
keys = dict_1.keys()
print(keys) # [name, age, gender]
# 返回所有值
values = dict_1.values()
print(values) # [Tom, 18, male]
2.2.2 dict.items()
该方法可以返回字典中所有的键值对,并且返回的数据类型为 list
。
dict_1 = {"name": "Tom", "age": 18, "gender": "male"}
# 返回所有键值对
items = dict_1.items()
print(items) # [(name, Tom), (age, 18), (gender, male)]
2.2.3 dict.pop(key, default)
该方法可以通过传入键名,来删除字典中对应的键值对,并且返回键对应的值。如果要删除的键名不存在,则可以通过传入默认返回值来避免报错。
dict_1 = {"name": "Tom", "age": 18, "gender": "male"}
# 删除年龄,并返回删除的值
age = dict_1.pop("age")
print(age) # 18
# 删除身高,返回 None
height = dict_1.pop("height", None)
print(height) # None
# 删除身高,返回 "Unknown"
height = dict_1.pop("height", "Unknown")
print(height) # Unknown
2.2.4 dict.update()
该方法可以通过传入一个字典,来更新原字典中的键值对数据。
dict_1 = {"name": "Tom", "age": 18, "gender": "male"}
# 更新字典
dict_2 = {"name": "Jerry", "age": 20}
dict_1.update(dict_2)
print(dict_1) # {"name": "Jerry", "age": 20, "gender": "male"}
3. 总结
Python 的字典是一种非常实用的数据结构,它可以存储大量的键值对数据,并且支持高效地查询和管理。除了最基础的增删改查操作之外,我们还可以通过字典推导式和常用的字典方法来更加高效地使用 Python 字典。掌握这些技能,对于日常工作和编程都是非常有帮助的。