[Python基础] 字典数据结构

Posted by Chase Shen on 2022-02-01
Estimated Reading Time 3 Minutes
Words 793 In Total
Viewed Times

字典(Dictionary)是 Python 中的一种数据结构,它可以存储任意类型对象,与列表、集合不同的是,字典的每个元素都是由一个键和一个值组成的“键值对”(key-value pairs),键和值通过冒号分开。字典是可变的、无序的,并且键是唯一的,但值可以重复。

1. 定义字典

创建字典有多种方式:

1. 字面量语法

使用花括号{}定义字典,键值对之间用冒号:分隔,键值对之间用逗号,分隔。

1
my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}

这种方式是最常用的创建字典的方式之一,特别是在已知键值对的情况下。

2. 构造器语法

使用dict()构造函数来创建字典,可以接受一个可迭代对象作为参数,该可迭代对象的元素应为键值对,或者通过关键字参数传递键值对。

1
another_dict = dict(name='Bob', age=25, city='Los Angeles')

这种方式适用于从其他数据结构(如列表、元组等)或者已有的字典中创建新的字典。

3. 字典推导式

字典推导式允许在一行代码中根据某种规则创建字典。其语法类似于列表推导式,但使用花括号{}来表示字典。

1
my_dict = {x: x**2 for x in range(1, 6)}

这种方式适用于根据某种规则动态生成字典的情况,可以使用迭代器或者其他可迭代对象来生成字典的键值对。

4. 使用zip()进行字典构建

1
2
3
4
keys = ['name', 'age', 'city']
values = ['Alice', 30, 'New York']
my_dict = dict(zip(keys, values))
print(my_dict) # 输出:{'name': 'Alice', 'age': 30, 'city': 'New York'}

在这个示例中,zip()函数用于将键和值两个列表打包成元组,然后使用dict()构造函数将这些元组转换成字典。

2. 访问元素

1
2
3
4
5
6
7
8
9
10
# 通过键可以获取字典中对应的值
print(my_dict['name'])
print(my_dict['age'])

# 对字典中所有键值对进行遍历
for key in my_dict:
print(f'{key}: {scores[key]}')

# get方法也是通过键获取对应的值但是可以设置默认值
print(my_dict.get('age', 30))

3. 添加或修改元素

1
2
3
4
5
6
my_dict['email'] = 'alice@example.com'  # 添加键值对

if '武则天' in scores:
print(my_dict['age'])
my_dict['age'] = 31 # 修改值
my_dict.update(email='abc@123.cn', phone='1212121') #添加或修改多个值

4. 删除元素

使用del关键字删除字典中的键值对。

1
2
3
4
del my_dict['city']  # 删除键为 'city' 的键值对

my_dict.popitem() #删除最后一个元素,返回最后一个元素的键和值
my_dict.pop('age', 11) #移除并返回指定键所对应的值,如果不设置第二个默认值,当指定键不存在时,返回的默认值。如果不提供该参数且指定键不存在,则会引发 KeyError 错误

5. 清空字典

1
my_dict.clear()

如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !