Python必备技巧之字典(Dictionary)详解
什么是字典?
字典(Dictionary)是Python中一种非常实用的数据类型。字典是一种可变容器,可以存储任意数量的对象,每个对象都由一个键和一个值组成。与列表、元组等数据类型不同,字典中的元素是没有顺序的,但是可以通过键来访问和修改元素。
字典的创建
使用花括号{}或者dict()函数可以创建一个字典:
# 创建一个空字典
d = {}
d = dict()
# 创建一个包含元素的字典
d = {'name': 'Tom', 'age': 18}
d = dict(name='Tom', age=18)
字典的基本操作
访问字典中的元素
通过键可以访问字典中的元素:
d = {'name': 'Tom', 'age': 18}
# 访问name键的值
print(d['name']) # 输出结果为Tom
# 访问age键的值
print(d['age']) # 输出结果为18
修改字典中的元素
通过键可以修改字典中的元素:
d = {'name': 'Tom', 'age': 18}
# 将age的值改为20
d['age'] = 20
print(d) # 输出结果为{'name': 'Tom', 'age': 20}
删除字典中的元素
使用del语句可以删除字典中的元素:
d = {'name': 'Tom', 'age': 18}
# 删除age键和值
del d['age']
print(d) # 输出结果为{'name': 'Tom'}
获取字典中所有的键和值
分别使用keys()和values()方法可以获取字典中所有的键和值:
d = {'name': 'Tom', 'age': 18}
# 获取所有的键
keys = d.keys()
print(keys) # 输出结果为dict_keys(['name', 'age'])
# 获取所有的值
values = d.values()
print(values) # 输出结果为dict_values(['Tom', 18])
遍历字典中的元素
使用for循环遍历字典中的元素:
d = {'name': 'Tom', 'age': 18}
# 遍历字典中的键
for key in d.keys():
print(key)
# 遍历字典中的值
for value in d.values():
print(value)
# 遍历字典中的键值对
for key, value in d.items():
print(key, value)
判断键是否在字典中存在
使用in和not in关键字可以判断字典中是否存在某个键:
d = {'name': 'Tom', 'age': 18}
# 判断name键是否在字典中
print('name' in d) # 输出结果为True
# 判断sex键是否在字典中
print('sex' in d) # 输出结果为False
# 判断height键是否不在字典中
print('height' not in d) # 输出结果为True
字典的高级应用
从列表或元组中创建字典
可以使用zip函数从两个列表或元组中创建字典:
keys = ['name', 'age', 'sex']
values = ['Tom', 18, 'male']
# 使用zip函数创建字典
d = dict(zip(keys, values))
print(d) # 输出结果为{'name': 'Tom', 'age': 18, 'sex': 'male'}
字典的循环嵌套
使用循环嵌套可以遍历字典中嵌套的字典:
d = {'name': 'Tom', 'age': 18, 'contact': {'phone': '13812345678', 'email': 'tom@example.com'}}
# 遍历字典中的键值对
for key, value in d.items():
# 如果值是一个字典,则遍历这个字典
if isinstance(value, dict):
print(key)
for sub_key, sub_value in value.items():
print('\t', sub_key, sub_value)
else:
print(key, value)
输出结果为:
name Tom
age 18
contact
phone 13812345678
email tom@example.com
总结
字典是一种非常有用的数据类型,掌握字典的基本操作和高级应用可以大大提高我们的编程效率。目前我们已经能够使用字典来存储和管理数据了,接下来我们需要学习如何使用字典来解决实际的问题。