📜  Python 3-字典(1)

📅  最后修改于: 2023-12-03 15:33:57.842000             🧑  作者: Mango

Python 3 - 字典

在 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'}
字典的常见操作

以下是一些常见的字典操作:

1. 访问字典元素

可以使用方括号 [] 来访问字典中的元素。其中,方括号中是键值(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
2. 更新字典元素

可以使用方括号 [] 和等号 = 来更新字典中的元素。其中,方括号中是键值,等号右侧是新值。

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'}
3. 删除字典元素

可以使用 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
4. 遍历字典

可以使用 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 中的字典还具有一些高级用法,这里简单介绍一下。

1. 字典推导式

与列表推导式和生成器表达式类似,字典推导式可以在一行代码中创建字典。

square = {x: x * x for x in range(6)}
print(square)

输出:

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
2. setdefault() 方法

可以使用 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}
3. fromkeys() 方法

可以使用 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 中字典的基本用法和高级用法。字典是一种非常重要的数据结构,广泛用于实际编程中的各种场景。掌握好字典的用法,将能很好地提升程序的效率和可维护性。