Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python指定错误的字典值_Python_Dictionary - Fatal编程技术网

Python指定错误的字典值

Python指定错误的字典值,python,dictionary,Python,Dictionary,在我的代码中: line_x = 10 c = 'A' d = 'B' a = {} a['one']='| | | | | |' a['two']='| | | | | |' #untill thirteen vak = a.keys() b = a #copy the dictionary spot = a[vak[0]] spot2 = b[vak[0]] a[vak[0]] = spot[:(line_x)]+ d+ spot[(line_x+1

在我的代码中:

line_x = 10
c = 'A'
d = 'B'
a = {}
a['one']='|   |   |   |   |   |'
a['two']='|   |   |   |   |   |'
#untill thirteen

vak = a.keys()
b = a #copy the dictionary
spot = a[vak[0]]
spot2 = b[vak[0]]
a[vak[0]] = spot[:(line_x)]+ d+ spot[(line_x+1):]
b[vak[0]] = spot2[:(line_x)]+ c+ spot2[(line_x+1):]

print a[vak[0]] #output_a = |   |   | A |   |   |
print b[vak[0]] #output_b = |   |   | A |   |   | <- which should be a 'B' in the middle
line_x=10
c='A'
d='B'
a={}
a['one']='| | | | | | | |'
a['two']='| | | | | | | |'
#直到十三岁
vak=a.键()
抄写字典
spot=a[vak[0]]
spot2=b[vak[0]]
a[vak[0]=spot[:(line_x)]+d+spot[(line_x+1):]
b[vak[0]=spot2[:(line_x)]+c+spot2[(line_x+1):]
打印a[vak[0]#输出a=| | | | a ||

print b[vak[0]]#output|b=||A | | |
b=A
不会复制字典,它会重新绑定
b
以指向与
A
相同的对象(因此当您更改
A
时,您也可以观察对
b
的影响)。使用
b=copy.copy(a)
(模块)取而代之。

b=a
不复制字典,它会重新绑定
b
以指向与
a
相同的对象(因此当您更改
a
时,您也可以观察对
b
的影响)。使用
b=copy。改为复制(a)
(模块)。

b = a #copy the dictionary
不抄袭词典,只抄袭参考文献。您必须明确地复制它:

b = copy(a)
这将创建字典的副本,您可以同时使用这两个工具进行操作,并且它将起作用。只要记住,如果在一个字典中更改可变对象,那么它们在两个字典中都会更改(如果它们仍然存在于两个字典中)。看看这个:

b = a #copy the dictionary
不抄袭词典,只抄袭参考文献。您必须明确地复制它:

b = copy(a)
这将创建字典的副本,您可以同时使用这两个工具进行操作,并且它将起作用。只要记住,如果在一个字典中更改可变对象,那么它们在两个字典中都会更改(如果它们仍然存在于两个字典中)。看看这个:


我已编辑了您的问题以添加代码。以后请在您的问题中粘贴代码。它使人们更容易查看您的代码并给出答案。如果你的代码太长(它不是在你的情况下),那么你可以考虑浓缩你的代码,只粘贴问题中与你的问题有关的显著特征。我已经编辑了你的问题来添加代码。以后请在您的问题中粘贴代码。它使人们更容易查看您的代码并给出答案。如果你的代码太长(它不是在你的情况下),那么你可以考虑浓缩你的代码,只粘贴问题中与你的问题有关的显著特征。对于你正在创建的浅拷贝,你也可以简单地使用<代码> B= DICT(a)。
@ThiefMaster:I发现
copy
更具描述性。@ThiefMaster
copy.copy
是一个浅显的副本<代码>复制。深度复制存在于深度复制中。复制模块更通用,更明确的做法是将其用于复制,而不是采用“复制构造函数”方法。对于您正在创建的浅层复制,您也可以简单地使用
b=dict(a)
@ThiefMaster:I发现
copy
更具描述性。@ThiefMaster
copy.copy
是浅层复制<代码>复制。深度复制存在于深度复制中。复制模块更通用,使用它进行复制比使用“复制构造函数”更明确。谢谢你们,这肯定会有帮助!谢谢你们,这肯定会有帮助的!