我对python有点新,所以这个问题可能很容易回答。但是,逻辑对我来说没有意义,这就是我发布这个问题的原因。虽然提出了类似的问题,但他们都使用了大量难以阅读的代码。这是python中的程序:
list1 = [1,2,3,4,5]
list2 = list1
for i in range(len(list2)):
list2[i] += 1
print list1
当我运行这个程序时,它返回list1为[2,3,4,5,6],这与list2相同。我的问题是为什么list1连接到list2,以及如何使它们彼此独立。谢谢你的回答。
答案 0 :(得分:1)
执行list2 = list1
后,您只是将list1
的引用传递给list2
,而是需要复制list1
并将该副本传递给{{} 1}}。
示例 -
list2
或者您也可以使用list1 = [1,2,3,4,5]
list2 = list1[:]
for i in range(len(list2)):
list2[i] += 1
print list1
>> [1, 2, 3, 4, 5]
模块 -
copy
如果列表包含对象,您可能也想复制它们,那么使用copy.deepcopy()
答案 1 :(得分:0)
默认情况下,python中的赋值运算符链接两个对象,即在两个对象之间创建绑定。 为了让您创建一个新的独立对象并仍然复制原始对象。 你必须使用副本(浅或深,取决于你的要求)
list2 = copy.copy(list1)