【发布时间】:2020-12-25 12:52:59
【问题描述】:
这里的程序是用python编写的,它旨在打印输入的不同排列。
例如
输入:[1,2,3]
输出:[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]
代码
def swap(a,b):
temp=a
a=b
b=temp
return a,b
def permut(z,l,n):
if l==n:
return (z)
else:
for i in range(l,n):
swap(z[l],z[i])
permut(z,l+1,n)
swap(z[l],z[i])
p=[1,2,3]
t=permut(p,0,3)
print(t)
我得到的是None,而不是得到理想的输出。
【问题讨论】:
-
我认为你没有返回任何东西,所以变量
t将得到None作为没有任何返回语句的函数返回None -
由于参数是不可变的(在本例中为数字),您的
swap函数将无法在原地交换 a、b 的值。
标签: python return permutation