pythondict字典以及赋值引用的一些实例(详解)
1. 字典(dict)的定义与用法
字典是Python中一种非常重要的数据类型,是一种可变的无序容器。用花括号{}
或者关键字dict
定义,其中每个元素由键和值组成,键和值之间用冒号:
隔开,每组键值对之间用逗号,
隔开。示例如下:
# 定义一个字典
dict1 = {'name': 'Tom', 'age': 20, 'gender': 'male'}
# 访问字典中的元素
print(dict1['name'])
# => Tom
# 修改字典中的元素
dict1['name'] = 'Jerry'
# 增加字典中的元素
dict1['score'] = 80
# 删除字典中的元素
del dict1['gender']
2. 字典赋值引用
在Python中,变量赋值实际上是引用的赋值,也就是说,当两个变量都指向同一个对象时,一个变量的修改会影响到另一个变量。例如,示例代码中的dict2 = dict1
,实际上是把dict1
字典的引用赋给了dict2
,所以对dict2
字典的修改也会影响到dict1
字典的内容。
# 定义一个字典dict1
dict1 = {'name': 'Tom', 'age': 20, 'gender': 'male'}
# 将dict1字典的引用赋给dict2
dict2 = dict1
# 修改dict2字典的值
dict2['name'] = 'Jerry'
# 打印dict1字典的内容
print(dict1)
# => {'name': 'Jerry', 'age': 20, 'gender': 'male'}
3. 字典浅复制
字典浅复制是指创建一个新的字典对象,但该对象中的所有元素不再是原有字典中元素的引用,而是把原有字典中每个键值对的副本都复制到了新的字典中,新的字典相当于一个独立的对象,不再受原有字典的影响。示例如下:
# 定义一个字典dict1
dict1 = {'name': 'Tom', 'age': 20, 'gender': 'male'}
# 字典浅复制
dict2 = dict1.copy()
# 修改dict2字典的值
dict2['name'] = 'Jerry'
# 打印dict1字典的内容
print(dict1)
# => {'name': 'Tom', 'age': 20, 'gender': 'male'}
经过浅复制后,对dict2
字典的修改不会影响到dict1
字典。
4. 字典深复制
字典深复制是指创建一个新的字典对象,在该对象中所有元素的值都是原有字典中元素值的复制,不再是原有字典中元素的引用。深复制可以避免原有字典中元素的赋值引用问题,使用方法是调用copy
函数并设置deep=True
参数。示例如下:
# 导入copy模块
import copy
# 定义一个字典dict1
dict1 = {'name': 'Tom', 'age': 20, 'gender': {'male': 1, 'female': 2}}
# 字典深复制
dict2 = copy.deepcopy(dict1)
# 修改dict2字典的值
dict2['gender']['male'] = 3
# 打印dict1字典的内容
print(dict1)
# => {'name': 'Tom', 'age': 20, 'gender': {'male': 1, 'female': 2}}
# 打印dict2字典的内容
print(dict2)
# => {'name': 'Tom', 'age': 20, 'gender': {'male': 3, 'female': 2}}
经过深复制后,对dict2
字典的修改不会影响到dict1
字典。但是需要注意的是,深复制是一个开销比较大的操作,应该在必要的情况下进行使用。
以上就是有关Python字典以及赋值引用的一些实例,希望对你有所帮助。