Python 递归赋值
上面的代码打印,但它按顺序从a-h打印列表。 像这样: “abcdefgh” 我需要将每两个字母反向打印;像这样:Python 递归赋值,python,list,recursion,Python,List,Recursion,上面的代码打印,但它按顺序从a-h打印列表。 像这样: “abcdefgh” 我需要将每两个字母反向打印;像这样: “badcfehg”为什么要使用2D阵列?您只是交换其成员(1D数组),而不是字符串中的字符。只需传入字符串本身,索引操作符就可以访问每个字符。另外,请记住+运算符对于字符串是非交换的: def swap(aList): if len(aList) == 0: return 0 elif len(aList) == 1: print(aList[0
“badcfehg”为什么要使用2D阵列?您只是交换其成员(1D数组),而不是字符串中的字符。只需传入字符串本身,索引操作符就可以访问每个字符。另外,请记住
+
运算符对于字符串是非交换的:
def swap(aList):
if len(aList) == 0:
return 0
elif len(aList) == 1:
print(aList[0])
return aList[0]
return aList[0] + swap(aList[2:])
aList = [["abcdefgh"]]
swap(aList)
为什么要使用二维阵列?您只是交换其成员(1D数组),而不是字符串中的字符。只需传入字符串本身,索引操作符就可以访问每个字符。另外,请记住
+
运算符对于字符串是非交换的:
def swap(aList):
if len(aList) == 0:
return 0
elif len(aList) == 1:
print(aList[0])
return aList[0]
return aList[0] + swap(aList[2:])
aList = [["abcdefgh"]]
swap(aList)
每当遇到递归问题时,您需要问自己两个问题:
对于递归情况,只考虑字符串“ab”-如何让递归调用返回“ba”。每当遇到递归问题时,您需要问自己两个问题:
对于递归情况,只考虑字符串“ab”-如何让递归调用返回“ba”。这里有一个非常简单的方法
def swap(s):
if len(s) == 0:
return ""
elif len(s) == 1:
return s
return s[1] + s[0] + swap(s[2:])
print(swap("abcdefgh")) # --> badcfehg
这里有一个非常简单的方法
def swap(s):
if len(s) == 0:
return ""
elif len(s) == 1:
return s
return s[1] + s[0] + swap(s[2:])
print(swap("abcdefgh")) # --> badcfehg
根据文章的标题,这可能是@KushalShinde的重复,除了这是一个显式递归赋值。是的,这是一个递归赋值,所以我需要坚持我所拥有的,并找出它为什么没有按我希望的方式打印。我做错了什么?根据文章的标题,这可能是@KushalShinde的重复,除了这是一个显式递归赋值。是的,这是一个递归赋值,所以我需要坚持我所拥有的,并找出它为什么没有按我希望的方式打印。我做错了什么?我对编程还是比较陌生的。谢谢你的见解。我对编程还是比较陌生的。谢谢你的见解。你可能不应该为他们做OP的家庭作业:)你可能不应该为他们做OP的家庭作业:)