1.字典简介
在Python中,字典(dict)是一种非常强大的数据类型。字典可以存储键-值对,这些键-值对可以用于描述一些内容,比如人物的属性、学生的成绩等。字典中的键必须是不可变类型,如字符串、数字、元组等,而值可以是任意类型。
关于字典有以下几点需要注意:
字典中的键是唯一的,如果出现重复的键,后面的键值会覆盖前面的键值。
字典中的键必须是不可变类型,如字符串、数字、元组等。
字典中的值可以是任意类型。
2.创建字典
2.1 直接创建
使用大括号({})创建一个空字典,使用冒号(:)分隔键和值:
# 创建一个空字典
my_dict = {}
# 创建一个包含键值对的字典
my_dict = {'name': 'Tom', 'age': 20, 'gender': 'male'}
2.2 dict()函数
使用内置的dict()函数可以将其他类型的数据转换为字典:
# 将元组转换为字典
my_dict = dict([('name', 'Tom'), ('age', 20), ('gender', 'male')])
# 将列表转换为字典
my_dict = dict(['ab', 'cd', 'ef'])
3.字典操作
3.1 访问字典中的元素
访问字典中的元素可以使用键作为下标:
my_dict = {'name': 'Tom', 'age': 20, 'gender': 'male'}
# 访问字典中的元素
print(my_dict['name']) # 'Tom'
print(my_dict['age']) # 20
print(my_dict['gender']) # 'male'
如果访问不存在的键,会抛出KeyError异常:
my_dict = {'name': 'Tom', 'age': 20, 'gender': 'male'}
# 访问不存在的键,抛出KeyError异常
print(my_dict['height']) # KeyError: 'height'
3.2 修改字典中的元素
修改字典中的元素可以通过键来修改:
my_dict = {'name': 'Tom', 'age': 20, 'gender': 'male'}
# 修改字典中的元素
my_dict['name'] = 'Jerry'
my_dict['age'] = 21
# 修改后的字典
print(my_dict) # {'name': 'Jerry', 'age': 21, 'gender': 'male'}
3.3 添加字典中的元素
添加字典中的元素可以通过赋值来添加:
my_dict = {'name': 'Tom', 'age': 20, 'gender': 'male'}
# 添加字典中的元素
my_dict['height'] = 175
# 添加后的字典
print(my_dict) # {'name': 'Tom', 'age': 20, 'gender': 'male', 'height': 175}
3.4 删除字典中的元素
删除字典中的元素可以使用del语句:
my_dict = {'name': 'Tom', 'age': 20, 'gender': 'male'}
# 删除字典中的元素
del my_dict['age']
# 删除后的字典
print(my_dict) # {'name': 'Tom', 'gender': 'male'}
4.字典方法
4.1 clear()方法
clear()方法用于清空字典中的所有元素:
my_dict = {'name': 'Tom', 'age': 20, 'gender': 'male'}
# 清空字典中的所有元素
my_dict.clear()
# 清空后的字典
print(my_dict) # {}
4.2 copy()方法
copy()方法用于复制字典中的所有元素,返回一个新的字典:
my_dict = {'name': 'Tom', 'age': 20, 'gender': 'male'}
# 复制字典中的所有元素
new_dict = my_dict.copy()
# 新的字典
print(new_dict) # {'name': 'Tom', 'age': 20, 'gender': 'male'}
注意,通过copy()方法复制的字典是一个新对象,而不是原对象的引用。
4.3 fromkeys()方法
fromkeys()方法用于创建一个新字典,并将指定的键和统一的值添加到字典中:
# 创建一个新字典
my_dict = {}
# 添加键值对
my_dict = my_dict.fromkeys(['name', 'age', 'gender'], 'unknown')
# 新的字典
print(my_dict) # {'name': 'unknown', 'age': 'unknown', 'gender': 'unknown'}
注意,所有的键都会被赋予同一个值,如果需要为不同的键赋不同的值,可以使用循环为每个键赋值。
4.4 get()方法
get()方法用于获取字典中指定键的值,如果键不存在,则返回默认值(默认为None):
my_dict = {'name': 'Tom', 'age': 20, 'gender': 'male'}
# 获取字典中指定键的值
print(my_dict.get('name')) # 'Tom'
print(my_dict.get('height')) # None
# 获取字典中不存在的键的值,返回指定的默认值
print(my_dict.get('height', 175)) # 175
4.5 items()方法
items()方法用于返回字典中所有的键值对,返回的结果是一个包含键值对的元组序列。
my_dict = {'name': 'Tom', 'age': 20, 'gender': 'male'}
# 获取字典中的所有键值对
print(my_dict.items()) # dict_items([('name', 'Tom'), ('age', 20), ('gender', 'male')])
可以使用循环遍历,获取所有键值对的键和值:
my_dict = {'name': 'Tom', 'age': 20, 'gender': 'male'}
# 使用循环遍历所有的键值对
for key, value in my_dict.items():
print(key, value)
# 打印输出
# name Tom
# age 20
# gender male
4.6 keys()方法
keys()方法用于返回字典中所有的键:
my_dict = {'name': 'Tom', 'age': 20, 'gender': 'male'}
# 获取字典中的所有键
print(my_dict.keys()) # dict_keys(['name', 'age', 'gender'])
可以使用循环遍历,获取所有的键:
my_dict = {'name': 'Tom', 'age': 20, 'gender': 'male'}
# 使用循环遍历所有的键
for key in my_dict.keys():
print(key)
# 打印输出
# name
# age
# gender
4.7 pop()方法
pop()方法用于删除指定的键,返回键对应的值,如果键不存在,则抛出KeyError异常:
my_dict = {'name': 'Tom', 'age': 20, 'gender': 'male'}
# 删除指定的键,返回键对应的值
value = my_dict.pop('age')
# 删除后的字典和返回的键值
print(my_dict) # {'name': 'Tom', 'gender': 'male'}
print(value) # 20
# 如果键不存在,抛出KeyError异常
my_dict.pop('height') # KeyError: 'height'
4.8 popitem()方法
popitem()方法用于随机删除字典中的一个键值对,并将这个键值对以元组的形式返回。如果字典为空,则抛出KeyError异常。
my_dict = {'name': 'Tom', 'age': 20, 'gender': 'male'}
# 随机删除字典中的一个键值对,返回一个元组
key, value = my_dict.popitem()
# 删除后的字典和返回的键值对
print(my_dict) # {'name': 'Tom', 'age': 20}
print(key, value) # 'gender' 'male'
# 如果字典为空,抛出KeyError异常
empty_dict = {}
empty_dict.popitem() # KeyError: 'popitem(): dictionary is empty'
4.9 setdefault()方法
setdefault()方法用于返回指定键的值,如果键不存在,则添加该键,并将默认值作为该键的值:
my_dict = {'name': 'Tom', 'age': 20, 'gender': 'male'}
# 返回指定键的值
print(my_dict.setdefault('name')) # 'Tom'
print(my_dict.setdefault('height', 175)) # 175
# 字典中新增了一个键值对
print(my_dict) # {'name': 'Tom', 'age': 20, 'gender': 'male', 'height': 175}
4.10 update()方法
update()方法用于将一个字典的键值对更新到另一个字典中:
my_dict = {'name': 'Tom', 'age': 20, 'gender': 'male'}
new_dict = {'height': 175, 'weight': 65}
# 将一个字典的键值对更新到另一个字典中
my_dict.update(new_dict)
# 更新后的字典
print(my_dict) # {'name': 'Tom', 'age': 20, 'gender': 'male', 'height': 175, 'weight': 65}
4.11 values()方法
values()方法用于返回字典中所有的值:
my_dict = {'name': 'Tom', 'age': 20, 'gender': 'male'}
# 返回字典中所有的值
print(my_dict.values()) # dict_values(['Tom', 20, 'male'])
可以使用循环遍历,获取所有的值:
my_dict = {'name': 'Tom', 'age': 20, 'gender': 'male'}
# 使用循环遍历所有的值
for value in my_dict.values():
print(value)
# 打印输出
# Tom
# 20
# male
5.总结
本文介绍了Python字典的基本操作和常用方法,包括创建字典、访问、修改、添加、删除、以及字典的常用方法,如clear()、copy()、fromkeys()、get()、items()、keys()、pop()、popitem()、setdefault()和update()。通过学习本文,读者应该已经了解了Python字典的基本用法和常用方法。