在python中追加始终打印最后一个附加列表

时间:2015-12-26 07:51:14

标签: python list python-2.7 append permutation

此代码会置换列表。我将整个置换列表附加到另一个列表,但输出始终是最后添加的置换列表。

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]]

我不知道我哪里出错了。请帮忙。提前谢谢。

0 个答案:

没有答案