我对Python很陌生,所以请容忍我。我目前正在尝试使用递归创建一个函数,它将遍历一个列表,对于每个整数项,它将写入一个文本文件I(表示整数)+值。到目前为止,我的情况是: 非常感谢您的帮助!你知道吗
def save(file, value):
output = ''
if len(value) == 0:
pass
else:
element = value[0]
if type(element) == int:
output += 'I' + element
save(f, element+1)
else:
pass
print(output)
a = ['this', 'is', 'a', 'list', 1, 2, 3, 4]
with open('forlater.txt', mode='w') as f:
save(f, a)
这样做不需要递归,只需遍历列表并为每个元素编写所需内容。将函数的第一个
if else
块替换为:你也可以使用列表理解
如果要使用递归:
但这不能维持你的秩序。你知道吗
在递归调用中传递参数的方式似乎有几个问题。第一个问题是,在递归调用中,您将整数作为
value
传递,但是value
意味着是一个列表(更好的命名方式会有所帮助)。第二个是output
不会在递归调用中传递,也不会返回。你知道吗另一个问题是,如果
element
的类型不是int
,则不会再次调用save
,因此当前save
只会被调用一次,因为a
的第一个元素是字符串。你知道吗记住这些,下面是代码的重构:
将以下内容写入文件:
您可能需要包含一些间距或新行。你知道吗
还要考虑到这个问题实际上不需要使用递归,
for
循环将是完成任务的更简单的方法:相关问题 更多 >
编程相关推荐