我正在尝试递归地编写 python 函数 range 而不是实际使用 range 函数,所以如果我有一个函数 Range(lo,hi),Range (3,7) 将返回 [3,4,5 ,6]
我目前拥有的:
def Range(lo,hi):
if hi <= lo:
return []
else:
return Range(lo - 1) + ([hi - 1,])
我知道这是完全错误的,但我也有:
def Range2(lo,hi):
if hi <=lo :
return []
else:
return [Range(lo,hi-1)]
最佳答案
试试这个:
def Range(lo,hi):
if hi <= lo:
return []
return [lo] + Range(lo + 1,hi)
您忘记将递归的当前 lo
编号添加到列表中
关于Python 范围函数本身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33724635/