将for循环的结果存储在数组中

时间:2019-01-29 10:55:04

标签: python python-3.x for-loop

我试图将嵌套的for循环的结果保存在python的列表中。有人可以告诉我该怎么做吗? V是包含[1、2、3]的数组 而n是长度= 3 sq是包含掉期的矩阵。

我尝试了许多方法,但是每当我返回结果时,它只会给我列表的一个元素。 任何帮助,将不胜感激。谢谢

def Permute1(sq,v,n):
        for i in range(n):
            for j in range(n):
                if (sq[i,j]==1):
                    temp=v[i]
                    v[i]=v[j]
                    v[j]=temp
                    print(v)



results: 
[1, 2, 3]
[2, 1, 3]
[3, 1, 2]
[3, 1, 2]
[3, 2, 1]
[3, 2, 1]

3 个答案:

答案 0 :(得分:0)

我不确定这里d = v的用途是什么。

要在Python中交换两个元素,我建议:

v[i], v[j] = v[j], v[i]

在for循环之前声明一个空列表并附加值(如AkshayNevrekar所说)也很有用,具体取决于结果。

答案 1 :(得分:0)

选中yield。 您可以使用它生成所有排列并处理每个排列并将它们存储在列表中。

答案 2 :(得分:0)

def Permute1(sq,v,n):
    result=[]
    for i in range(n):
        for j in range(n):
            if (sq[i,j]==1):
                temp=v[i]
                v[i]=v[j]
                v[j]=temp
                result += [v]
    print(result)
    return result

未经测试,但可能会有所帮助。