我对蟒蛇来说是个新手...所以我已经有一段时间没有找到问题了,经过大量的研究后我没有找到解决方案,所以我决定在这里问:)。
所以代码解释了我的问题:
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;我也不是母语为英语的人,但我希望你能理解我。
答案 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