【发布时间】:2014-01-14 05:29:21
【问题描述】:
我似乎遇到了一个问题,我使用list() 将一个模板列表复制到dict 中的多个键,以便我可以专门更改使用dict 键访问的给定列表的值。但是,我似乎正在对复制列表的键值进行操作。
list1 = [['x', 'y', 0],
['m', 'n', 0],
]
dict2 = {'first': list(list1),
'second': list(list1),
}
def attempt(arg):
dict_key = dict2[arg]
for each in dict_key:
each[2] += 1
attempt('first')
print dict2['first']
print dict2['second']
输出:
[['x', 'y', 1], ['m', 'n', 1]] # expect elems to contain 1
[['x', 'y', 1], ['m', 'n', 1]] # expect elems to contain 2
看起来 list() 实际上并没有创建一个实际的副本,而是表现得更像一个作业,但这对我来说没有意义。谁能解释一下?
【问题讨论】:
-
@AshwiniChaudhary:从问题中完全看不出他们在问同样的事情……但从答案来看是这样。你的答案很棒。遗憾的是这个问题不如这个问题好,但我想最好还是作为一个副本结束。
标签: python list dictionary