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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在数组中存储for循环的结果相关的知识,希望对你有一定的参考价值。

我试图在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]
答案

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

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

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

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

另一答案
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

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

另一答案

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

以上是关于在数组中存储for循环的结果的主要内容,如果未能解决你的问题,请参考以下文章

将数组 [in] 从 for 循环存储到返回未定义的新数组

使用 CUDA 在 python 中展开一个可并行化的 for 循环

使用for循环从数组迭代到列表

如何将数组矩阵的结果存储到较小的数组c#

JS如何将for循环的结果保存为数组?

关于for循环打印数组 arr[i] 和 i[arr]结果一样问题