python的这段程序该怎么理解,没看懂

2025-05-17 09:12:03
推荐回答(2个)
回答1:

倒序显示一个list的后半部分。显示完成后,list保持原状。

这是一个递归调用的一个练习题。

象是玩牌似的。先把首尾交换。然后递归调用里面一层,然后再把首尾换回来。
递归调用直到中间那个数,这里将整个LIST的前半部分(此时是倒序的原来的后半部分)打印出来。

这样的交换策略应用到从1到结尾的每一个输入的序列。

回答2:

输出一个给定list的所有元素的排列组合
你把代码修改下:
def perm(list,k,m):
if k==m:
#for i in range(m+1):
print list[:m+1]
#print
else:
for i in range(k,m+1):
list[k],list[i]=list[i],list[k]
perm(list,k+1,m)
list[k],list[i]=list[i],list[k]
mylist=input("input a list([1,2,3...]):")
perm(mylist,0,len(mylist)-1)

这样看结果就比较清楚了