此代码会置换列表。我将整个置换列表附加到另一个列表,但输出始终是最后添加的置换列表。
import random
def permute(a):
for i in range(len(a)-1, 0, -1):
k = random.randint(100,200) % i
temp = a[i]
a[i] = a[k]
a[k] = temp
return a
def generate_parents():
p = [1,2,3,4]
Parent = list()
print p
Parent.append(p)
print Parent
new_p = permute(p)
print new_p
Parent.append(new_p)
print Parent
new_p1 = permute(new_p)
print new_p1
Parent.append(new_p1)
print Parent
generate_parents()
输出如下:
[1, 2, 3, 4]
[[1, 2, 3, 4]]
[3, 1, 4, 2]
[[3, 1, 4, 2], [3, 1, 4, 2]]
[2, 3, 1, 4]
[[2, 3, 1, 4], [2, 3, 1, 4], [2, 3, 1, 4]]
但输出应如下所示:
[1, 2, 3, 4]
[[1, 2, 3, 4]]
[3, 1, 4, 2]
[[1, 2, 3, 4], [3, 1, 4, 2]]
[2, 3, 1, 4]
[[1, 2, 3, 4], [3, 1, 4, 2], [2, 3, 1, 4]]
我不知道我哪里出错了。请帮忙。提前谢谢。