Python 词典的强大功能:综合指南
字典是 Python 中最通用、最强大的数据结构之一。它们用于以键值格式存储数据集合,从而允许高效的数据检索和操作。
1. Python 词典简介
Python 中的字典是键值对格式的无序数据集合。每个键都是唯一的,用于访问其相应的值。字典在其他编程语言中也称为关联数组或哈希映射。
# An example dictionary
student = {
'name': 'John',
'age': 25,
'major': 'Computer Science'
}
在上面的示例中,'name'、'age' 和 'major' 是键,而 'John'、25 和 'Computer Science' 是它们各自的值。词典用大括号 {} 括起来,键值对用冒号分隔。
2. 创建词典
可以使用不同的方法创建词典:
a. 使用大括号
创建字典的最常见方法是将键值对括在大括号中。
student = {
'name': 'John',
'age': 25,
'major': 'Computer Science'
}
b.使用dict()构造函数
可以通过将键值对作为参数传递,使用 dict() 构造函数创建字典。
student = dict(name='John', age=25, major='Computer Science')
c. 使用元组列表
还可以使用 dict() 构造函数从 Tuples 列表创建字典。
student_info = [('name', 'John'), ('age', 25), ('major', 'Computer Science')]
student = dict(student_info)
3. 访问 Dictionary 元素
要访问字典中的值,您可以使用键。只需在方括号中提供键或使用 get() 方法。
# Accessing values using square brackets
name = student['name'] # 'John'
age = student['age'] # 25
# Accessing values using get()
major = student.get('major') # 'Computer Science'
使用 get() 更安全,因为如果未找到 key,它不会引发 KeyError;相反,它将默认返回 None 或指定的默认值。
4. 修改词典
词典是可变的,这意味着您可以在创建后更改其内容。以下是一些常见操作:
a. 添加键值对
可以通过为新键分配值来向字典添加新的键值对。
student['email'] = 'john@codeswithpankaj.com'
b. 更新值
要更新现有键的值,只需为其分配一个新值即可。
student['age'] = 26
c. 删除键值对
可以使用 del 语句或 pop() 方法删除键值对。
# Using del statement
del student['major']
# Using pop() method
email = student.pop('email')
5. 字典方法
Python 词典附带了多种方法,允许您操作和使用它们。让我们探索一些最常用的方法。
a.清除 ()
clear() 方法从字典中删除所有键值对,使其为空。
student.clear()
b.复制()
copy() 方法创建字典的浅表副本。
student_copy = student.copy()
c.fromkeys()
fromkeys() 方法创建一个具有指定键和可选值的新字典。
keys = ['name', 'age', 'major']
default_value = 'N/A'
student_info = dict.fromkeys(keys, default_value)
d.获取()
已经看到了用于访问值的 get() 方法。如果未找到键,则还可以使用第二个参数来指定默认值。
email = student.get('email', 'Not Available')
e.项目()
items() 方法以元组形式返回键值对列表。
items = student.items()
# [('name', 'John'), ('age', 25), ('major', 'Computer Science')]
f.键()
keys() 方法返回字典中所有键的列表。
keys = student.keys()
# ['name', 'age', 'major']
g.值()
values() 方法返回字典中所有值的列表。
values = student.values()
# ['John', 25, 'Computer Science']
h.流行()
pop() 方法删除键并返回其值。如果未找到键,则还可以使用第二个参数来指定默认值。
major = student.pop('major')
# 'Computer Science'
gpa = student.pop('gpa', 3.0)
# 3.0
i.popitem()
popitem() 方法删除任意键值对并将其作为元组返回。
item = student.popitem()
# ('name', 'John')
j.更新()
update() 方法使用来自另一个字典或 iterable 的元素更新字典。
new_info = {'email': 'john@email.com', 'gpa': 3.8}
student.update(new_info)
6. 迭代字典
您可以遍历字典以访问它们的键和值。有几种方法可以执行此操作:
a. 循环遍历键
您可以使用 for 循环遍历字典的键。
for key in student:
print(key, student[key])
b. 循环浏览项目
您可以使用 for 循环通过 items() 方法遍历键值对。
for key, value in student.items():
print(key, value)
c. 遍历值
还可以使用 values() 方法遍历值。
for value in student.values():
print(value)
7. 字典推导式
就像列表推导式一样,Python 允许你使用字典推导式创建词典。这些是从可迭代对象创建字典的简洁方法。
keys = ['a', 'b', 'c']
values = [1, 2, 3]
my_dict = {key: value for key, value in zip(keys, values)}
# {'a': 1, 'b': 2, 'c': 3}
当你想将可迭代对象中的数据转换或过滤为字典时,字典推导式很有用。