📅  最后修改于: 2023-12-03 15:33:57.842000             🧑  作者: Mango
在 Python 3 中,字典是一种无序的可变集合,用于存储键值对。字典中的每个元素由一个键和一个值组成。键必须是唯一的,而值可以是任何类型的对象。
可以使用花括号 {}
或 dict()
函数来创建字典。以下示例展示了如何创建和初始化空字典和具有值的字典:
# 创建空字典
empty_dict = {}
print(empty_dict)
# 创建具有值的字典
person = {"name": "Tom", "age": 25, "job": "Developer"}
print(person)
# 使用 dict() 函数创建字典
employee = dict(name="Mike", age=30, job="Manager")
print(employee)
输出:
{}
{'name': 'Tom', 'age': 25, 'job': 'Developer'}
{'name': 'Mike', 'age': 30, 'job': 'Manager'}
以下是一些常见的字典操作:
可以使用方括号 []
来访问字典中的元素。其中,方括号中是键值(key),可以是整数、字符串或其他 Python 数据类型。
person = {"name": "Tom", "age": 25, "job": "Developer"}
# 使用键值访问字典元素
print(person["name"])
print(person["age"])
print(person["job"])
输出:
Tom
25
Developer
如果访问不存在的键值,则会引发 KeyError 异常。在这种情况下,可以使用 dict.get(key, default)
方法获取默认值。
person = {"name": "Tom", "age": 25, "job": "Developer"}
# 访问字典中不存在的键
print(person.get("address", "Unknown"))
输出:
Unknown
可以使用方括号 []
和等号 =
来更新字典中的元素。其中,方括号中是键值,等号右侧是新值。
person = {"name": "Tom", "age": 25, "job": "Developer"}
# 更新字典中的元素
person["age"] = 30
person["job"] = "Manager"
print(person)
输出:
{'name': 'Tom', 'age': 30, 'job': 'Manager'}
如果键值不存在,则会在字典中添加新键值对。
person = {"name": "Tom", "age": 25, "job": "Developer"}
# 添加新的键值对
person["address"] = "New York"
print(person)
输出:
{'name': 'Tom', 'age': 25, 'job': 'Developer', 'address': 'New York'}
可以使用 del
关键字来删除字典中的元素。
person = {"name": "Tom", "age": 25, "job": "Developer"}
# 删除字典中的元素
del person["age"]
print(person)
输出:
{'name': 'Tom', 'job': 'Developer'}
如果键值不存在,则会引发 KeyError 异常。可以使用 dict.pop(key, default)
方法删除元素并同时返回值。如果键值不存在,则返回默认值。
person = {"name": "Tom", "job": "Developer"}
# 删除字典中不存在的键
print(person.pop("age", "Unknown"))
输出:
Unknown
可以使用 for
循环遍历字典中的键值对。在每次循环中,可以使用 items()
方法获取键和值,也可以使用 keys()
和 values()
方法分别获取键和值。
person = {"name": "Tom", "age": 25, "job": "Developer"}
# 遍历字典中的键和值
for key, value in person.items():
print(key, value)
# 遍历字典中的键
for key in person.keys():
print(key)
# 遍历字典中的值
for value in person.values():
print(value)
输出:
name Tom
age 25
job Developer
name
age
job
Tom
25
Developer
除了常见的操作外,Python 3 中的字典还具有一些高级用法,这里简单介绍一下。
与列表推导式和生成器表达式类似,字典推导式可以在一行代码中创建字典。
square = {x: x * x for x in range(6)}
print(square)
输出:
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
可以使用 dict.setdefault(key, default)
方法获取键值对。如果键值存在,则返回对应的值。如果键值不存在,则添加新的键值对并返回默认值。
person = {"name": "Tom", "job": "Developer"}
# 获取现有键值对
print(person.setdefault("name", "John"))
print(person.setdefault("age", 25))
print(person)
输出:
Tom
25
{'name': 'Tom', 'job': 'Developer', 'age': 25}
可以使用 dict.fromkeys(seq, value=None)
方法创建新字典,其中 seq
是一个可迭代对象,表示新字典的键,value
是一个可选参数,表示新字典的初始值,默认为 None
。
keys = ["name", "age", "job"]
person = dict.fromkeys(keys)
print(person)
person = dict.fromkeys(keys, "Unknown")
print(person)
输出:
{'name': None, 'age': None, 'job': None}
{'name': 'Unknown', 'age': 'Unknown', 'job': 'Unknown'}
以上是 Python 3 中字典的基本用法和高级用法。字典是一种非常重要的数据结构,广泛用于实际编程中的各种场景。掌握好字典的用法,将能很好地提升程序的效率和可维护性。