python - 如何在 python 的递归函数中定义共享列表?
问题描述
我想封装我的函数并在函数中定义列表,而不是在它之前!例如在这段代码中:
s = []
def rec(n):
if n == 0:
return s
else:
s.append(n)
rec(n-1)
return s
print(rec(5))
但是当我在递归函数中定义它时,它就变成了本地的。
解决方案
您可以通过在递归函数的参数中传递列表(带有默认值)来做到这一点:
def rec(n, s=[]):
if n == 0:
return s
else:
s.append(n)
rec(n-1, s)
return s
print(rec(5))
推荐阅读
- ios - 在混合应用程序中为 iOS 模拟器构建错误
- algorithm - 递归地将数字 4 的所有分区枚举为四个有序数字?
- java - Java 中的 Azure 函数在本地无法运行
- laravel - Laravel 7 - 随机延迟(主要是 ajax 请求 - 从 300ms 到随机 4,5s)
- ios - 在 ViewWillAppear 和 ViewWillDisappear UI 故障处隐藏/显示导航栏
- php - Laravel/homestead - 没有指定输入文件
- javascript - 将组件道具传递到 ReactJS/NextJS 中的字符串中
- ios - ModelPresentationStyle FullScreen 总是隐藏状态栏
- javascript - *this* 对象在 React 组件中是“未定义的”
- python - 通过sftp成功上传后删除本地机器中的文件