gpt4 book ai didi

Python-带有打印的递归

转载 作者:行者123 更新时间:2023-12-01 05:31:03 24 4
gpt4 key购买 nike

我需要打印列表的元素,这样如果一个元素是 100 或更大,则后面跟一个换行符,如果不是,则后面跟一个空格。

这是我到目前为止所拥有的:

def function(list):
if list == []:
return None
elif list[0] >= 100:
print(list[0], function(list[1:]), end = '\n')
else:
print(list[0], function(list[1:]), end = '')
return None

但是当我尝试 list = [2,3,103, 8, 10] 时,Python 打印:

10 None8 None103 None

3 None2 None

有什么建议/帮助吗?

最佳答案

你走在正确的道路上。这就是您想要的:

def function(lst):
if not lst:
return
elif lst[0] >= 100:
print(lst[0], end='\n')
else:
print(lst[0], end=' ')
function(lst[1:])

(我将 list 重命名为 lst,因为 list 是我们不想覆盖的内置类型)。

说明:如果我们在 print 调用中进行递归调用,我们会打印函数的返回值,该值始终为 None,因为它永远不会返回任何其他内容。所以我们必须把它移到外面。

此外,空列表的 bool 值为False,因此我们可以将lst == []替换为not lst,如下PEP 8推荐.

关于Python-带有打印的递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20305589/

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