修改其他列表定义的列表

时间:2013-12-04 05:28:36

标签: python

我正在尝试制作游戏,但无法弄清楚如何修改列表而不影响另一个游戏。 我的代码是

list1 = [1,2,3,4,5,6,7,8,9,0]
list2 = list1
for i in range(len(list2)):
    list2.remove(i)
print (list1)
print (list2)

,结果是

[]
[]

我怎样才能使它们两个没有连接(我需要组合列表,但一旦程序重新启动就会删除)

4 个答案:

答案 0 :(得分:3)

您可以将list2设为新对象:

list2 = list(list1)

所以输出结果为:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
[]

答案 1 :(得分:1)

您可以使用复制模块

list1 = [1,2,3,4,5,6,7,8,9,0]
import copy
list2 = copy.copy(list1)

list1中的任何更改都不会影响list2,反之亦然。如果您的列表是复合列表,即包含列表作为元素,则需要使用deepcopy,如下所示:

list2 = copy.deepcopy(list1) 

有关更多用例,请参阅http://docs.python.org/2/library/copy.html

答案 2 :(得分:0)

制作第一份清单的副本:

list2 = list(list1)

答案 3 :(得分:0)

这很好:

list2 = list(list1)

或者我通常采用的方式:

list2 = list1[:]

第一个是使用列表构造函数。第二个是使用切片。我并不打算检查哪个更快。