Python 字典(Dictionary)


Python 字典(Dictionary)技术文档

概述

在 Python 中,字典是一种无序的、可变的数据类型,用于存储键值对。字典中的元素是通过键来访问的,而不是通过索引。Python 字典可以存储任何类型的数据,包括整数、浮点数、字符串、列表、元组等。字典中的元素不能重复,如果键重复,后面的值会覆盖之前的值。

基本操作

创建字典

可以使用大括号来创建一个空的字典,也可以使用花括号和冒号来初始化一个非空的字典。

empty_dict = {}
print(empty_dict)

dict_literal = {'name': 'Tom', 'age': 22}
print(dict_literal)

访问元素

可以使用键来访问字典中的元素,如果键不存在,则会抛出 KeyError 异常。

# 访问字典中的元素
person = {'name': 'Tom', 'age': 22}
print(person['name'])
print(person['age'])

# 如果键不存在,则会抛出 KeyError 异常
print(person['gender'])     # KeyError: 'gender'

修改元素

可以通过键来修改字典中的元素。

person = {'name': 'Tom', 'age': 22}
person['age'] = 23
print(person)

添加元素

可以通过键来添加字典中的元素。

person = {'name': 'Tom', 'age': 22}
person['gender'] = 'male'
print(person)

删除元素

可以使用 del 语句来删除字典中的元素。

person = {'name': 'Tom', 'age': 22}
del person['age']
print(person)

判断键是否存在

可以使用 in 运算符来判断一个键是否存在于字典中。

person = {'name': 'Tom', 'age': 22}
print('name' in person)     # True
print('gender' in person)   # False

获取所有的键和值

可以使用 keys()、values() 和 items() 方法来获取字典中所有的键、值和键值对。

person = {'name': 'Tom', 'age': 22}
print(person.keys())    # dict_keys(['name', 'age'])
print(person.values())  # dict_values(['Tom', 22])
print(person.items())   # dict_items([('name', 'Tom'), ('age', 22)])

字典的高级操作

字典推导式

字典推导式是一种快捷创建字典的方法,类似于列表推导式。通过遍历一个可迭代对象来快速构建字典。

# 创建一个字典,将字母转换成对应的 ASCII 码值
ascii_dict = {chr(i): i for i in range(65, 91)}
print(ascii_dict)

get 方法

get() 方法可以用来获取字典中指定键的值,如果键不存在,则返回默认值。

person = {'name': 'Tom', 'age': 22}
print(person.get('name'))        # Tom
print(person.get('gender'))      # None
print(person.get('gender', 'unknown'))   # unknown

setdefault 方法

setdefault() 方法可以用来获取字典中指定键的值,如果键不存在,则设置默认值并返回默认值。

person = {'name': 'Tom', 'age': 22}
name = person.setdefault('name', 'unknown')
gender = person.setdefault('gender', 'male')
print(name)                     # Tom
print(gender)                   # male
print(person)                   # {'name': 'Tom', 'age': 22, 'gender': 'male'}

update 方法

update() 方法可以用来更新字典中的元素。

person1 = {'name': 'Tom', 'age': 22}
person2 = {'gender': 'male', 'hometown': 'Beijing'}
person1.update(person2)
print(person1)                  # {'name': 'Tom', 'age': 22, 'gender': 'male', 'hometown': 'Beijing'}

总结

Python 字典是一种非常实用的数据类型,可以存储任何类型的数据,并且可以通过键来访问元素,具有非常高的灵活性和效率。在实际编程中,我们应该尽可能地利用 Python 字典来简化代码,提高程序的可读性和可维护性。