我试图将嵌套的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]
答案 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
未经测试,但可能会有所帮助。