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

问题描述 投票:0回答:3

我试图在python中的列表中保存嵌套for循环的结果。谁能告诉我怎么做? 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]
python python-3.x for-loop
3个回答
0
投票

我不确定d = vhere的效用是什么。

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

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

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


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

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.