1. 创建字典
在Python中,可以通过使用大括号或者通过dict()方法来创建字典。使用大括号创建字典时,可以通过键值对的形式来初始化,如下所示:
# 使用大括号创建字典
d = {'name': 'Alice', 'age': 25, 'gender': 'female'}
如果想要使用dict()方法创建字典,可以将键值对视为参数传递给该方法:
# 使用dict()方法创建字典
d = dict(name='Alice', age=25, gender='female')
1.1 注意事项
字典的键必须是不可变的数据类型,如字符串、数字或元组;而值则可以是任意类型,如字符串、数字、列表等。如果在创建字典时有重复的键,后面的值会覆盖前面的值。
在Python 3.7及以上的版本中,字典是有序的,即创建时键值对的顺序与遍历时的顺序相同。如果使用Python 3.6及以下的版本,字典是无序的。
2. 访问字典中的值
我们可以使用键来访问字典中的值:
# 访问字典中的值
print(d['name']) # 输出:'Alice'
如果访问字典中不存在的键,则会报错。如果希望在键不存在时返回默认值,可以使用get()方法,如下所示:
# 使用get()方法访问字典中的值
print(d.get('address', 'unknown')) # 输出:'unknown'
此外,我们还可以使用items()方法来遍历字典中的所有键值对:
# 遍历字典中的所有键值对
for key, value in d.items():
print(key, value)
该方法返回一个包含所有键值对的可迭代对象,每次迭代返回一个键值对元组。
3. 修改字典
我们可以使用键来修改字典中的值:
# 修改字典中的值
d['age'] = 26
print(d) # 输出:{'name': 'Alice', 'age': 26, 'gender': 'female'}
如果修改的键不存在,则会将该键值对添加到字典中。
4. 删除字典元素
我们可以使用del关键字来删除字典中的元素:
# 删除字典中的元素
del d['gender']
print(d) # 输出:{'name': 'Alice', 'age': 26}
同时,我们也可以使用pop()方法来删除指定键对应的键值对,该方法会返回被删除的值:
# 使用pop()方法删除字典中的元素
age = d.pop('age')
print(d) # 输出:{'name': 'Alice'}
print(age) # 输出:26
5. 复制字典
我们可以使用copy()方法来复制字典:
# 复制字典
d1 = d.copy()
print(d1) # 输出:{'name': 'Alice'}
如果直接将一个字典赋值给另一个变量,则两个变量将引用同一个对象,修改其中一个变量会影响到另一个变量:
# 直接赋值会复制引用
d2 = d
d['name'] = 'Bob'
print(d2) # 输出:{'name': 'Bob'}
6. 合并字典
字典可以使用update()方法进行合并,新键将添加到字典中,已存在的键的值将被替换为新的值:
# 合并字典
d1 = {'name': 'Alice', 'age': 25}
d2 = {'gender': 'female', 'address': 'beijing'}
d1.update(d2)
print(d1) # 输出:{'name': 'Alice', 'age': 25, 'gender': 'female', 'address': 'beijing'}
7. 字典排序
字典是无序容器,不支持直接排序。不过,我们可以使用内置的sorted()函数对字典进行排序,该函数返回一个排好序的列表,而不是一个字典:
# 对字典按键升序排序
d = {'b': 2, 'a': 1, 'c': 3}
sorted_d = sorted(d.items(), key=lambda x: x[0])
print(sorted_d) # 输出:[('a', 1), ('b', 2), ('c', 3)]
上述代码中,sorted()函数的key参数接受一个函数,该函数指定按什么值排序。这里使用lambda表达式,以键作为排序条件。
8. 字典推导式
像列表一样,字典也支持推导式。字典推导式的语法是:{key: value for element in iterable},其中key和value是新字典中的键和值,element是可迭代对象中的元素。例如:
# 使用字典推导式创建新字典
d = {i: i ** 2 for i in range(5)}
print(d) # 输出:{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
字典推导式也支持条件过滤和嵌套循环,用法与列表推导式相同。
总结
在Python中,字典是一种非常常用的数据类型,可用于存储键值对。本文介绍了创建字典、访问字典的值、修改和删除字典元素、复制字典、合并字典、排序字典和使用字典推导式等操作技巧。掌握这些技巧可以让我们更加高效地使用字典,提高编程效率。