Python 字典基础知识的令人耳目一新的回顾

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 表示可迭代对象,它可以是一个 listtupleset 等。我们可以通过对可迭代对象的遍历操作来自动生成一个字典,如下所示:

# 生成一个简单的字典

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 字典。掌握这些技能,对于日常工作和编程都是非常有帮助的。

后端开发标签