字典中变量的值在python中更改

时间:2017-06-11 07:32:47

标签: python

cA1 = 1
cA2 = 0

dict_1 = {1: cA1, 2:cA2}

q=2

dict_1[q] = [3,6,9]

print dict_1[q]
print cA2

当我们两个都引用cA2时,我对dict_1[q]中变量cA2与变量dict_1[q]不同的问题陷入困境。由于[3,6,9]的输出为0cA2的输出为{{1}}。

1 个答案:

答案 0 :(得分:0)

通过设置字典中的值,您将覆盖之前值的引用,因此您无法以这种方式进入cA2。另一个障碍是整数是不可变的,因此无法在定义时更改cA2的值。

一种方法是:

  • cA2定义为list
  • 使用切片表示法[:]
  • 进行分配
像这样:

cA1 = 1
cA2 = []

dict_1 = {1: cA1, 2:cA2}

q=2

dict_1[q][:] = [3,6,9]  # assign using slice: change value not reference

print(dict_1[q])
print(cA2)

现在更新cA2,两个值现在都相等:

[3, 6, 9]
[3, 6, 9]