python - Python:通过命令提示符解析嵌套的数字列表
问题描述
我正在尝试编写一个 python 程序(rec_list_sum.py),它递归地查找嵌套的数字列表的总和。
我对 Powershell 终端的输入:
python rec_list_sum.py [1,2,3,[4,5],[6,7],8]
我的函数接受这样的数组:
import sys
def recursive_list_sum(array):
total = 0
for ele in array:
if isinstance(ele, list):
total = total + recursive_list_sum(ele)
else:
total = total + ele
return total
这是我遇到问题的部分,解析输入:
if __name__ == "__main__":
string = sys.argv[1]
digits = [int(i) for i in str(string)]
ans = recursive_list_sum(digits)
print(ans)
我的代码可以在 jupyter notebook 上工作,但我似乎无法使用 PowerShell 将此输入解析为 python。谁能解释一下如何?
解决方案
您可以使用ast.literal_eval
将输入字符串解析为 Python 表达式:
from ast import literal_eval
ans = recursive_list_sum(literal_eval(sys.argv[1]))
推荐阅读
- reactjs - 使用覆盖部分联合的交集类型
- blazor - Blazor OnClick 在带有 JS 事件处理程序的元素内部不起作用
- azure - 如何在 docker compose 上部署 Airflow?
- javascript - jQuery 3.6.0 是否支持 jQuery 验证 1.14.0?
- swift - 为自定义框架编写处理程序
- android - onNavigationItemSelected 不起作用?
- postgresql - Kafka Connect:使用 debezium 从 Postgres 流式传输更改到主题
- html - 有没有办法在 epub 阅读器自动分页后编辑边距?
- javascript - 当我单击 angular.js 中的按钮时,如何添加“加载”文本?
- angular - 如何检查从父组件到角度嵌套子组件的验证?