Python - 在循环中复制列表

时间:2016-04-01 19:07:39

标签: python

我对蟒蛇来说是个新手...所以我已经有一段时间没有找到问题了,经过大量的研究后我没有找到解决方案,所以我决定在这里问:)。

所以代码解释了我的问题:

test = []
solutions = []

i = 0
while i < 100:
    for i in range(0, 64):
        pos = random.randrange(0, 64)
        test.append(pos)
    solutions.append(test)
    test.clear()
    i += 1

所以我希望每次循环时都将表的副本添加到另一个表中,然后清理名为test的表。问题是我不知道每次循环时如何创建列表副本。所以我得到了空列表的列表:(

我尝试使用copy.copy或copy.deepcopy但是没有用。

这是我在这里的第一个问题,对于任何&#34;错误&#34;我也不是母语为英语的人,但我希望你能理解我。

3 个答案:

答案 0 :(得分:0)

您可以通过调用列表构造函数

来附加重复项
solutions.append(list(test))

答案 1 :(得分:0)

如果你想干净,不要使用test.clear()

使用:

test = []

你应该删除test.clear(),然后改变&lt; 100 of while因为是无限的

import random
test = []
solutions = []

i = 0
while i < 100:
    for i in range(0, 64):
        pos = random.randrange(0, 64)
        test.append(pos)
    solutions.append(test)

答案 2 :(得分:0)

您可以复制列表,如:

solutions.append(test[:])

要清空它,因为没有空方法,你可以将它重新分配给一个新的空列表:

test = []

与Zaphod提到的一样,你的while循环从未完成,因为你永远不会更新i的值,而且正在内部for循环中分配。为什么不使用两个嵌套的for循环? (下划线只是一个var占位符,表示未使用该值)

import random

test = []
solutions = []

for _ in range(0, 100):
    for i in range(0, 64):
        pos = random.randrange(0, 64)
        test.append(pos)
    solutions.append(test[:])
    test = []
print solutions