gpt4 book ai didi

python - 我怎样才能将这个方法重写为递归?

转载 作者:行者123 更新时间:2023-11-30 22:46:10 25 4
gpt4 key购买 nike

这是一个简单的程序,用于计算列表中大于或等于 x 且小于等于 y 的元素的数量。

def NumRange(a,x,y):
count = 0
for num in a:
if(num>=x and num<=y):
count+=1
return count

NumRange([1,3,5,7,9,11],3,9)
# => 4

如何将此方法重写为递归?我知道我可能需要在此方法中添加一个参数,但我不知道该怎么做。

最佳答案

这是递归的一个很好的选择,在 Python 2 中你可以这样做

def NumRange(a, x, y):
hd, tl = a[0], a[1:]
if tl == []:
return 1 if hd >= x and hd <= y else 0
else:
return (1 if hd >= x and hd <= y else 0) + NumRange(tl, x, y)

这也是尾递归。

关于python - 我怎样才能将这个方法重写为递归?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40960767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com