python dict 字典 以及 赋值 引用的一些实例(详解)

  • Post category:Python

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字典以及赋值引用的一些实例,希望对你有所帮助。