首页 > 解决方案 > 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。谁能解释一下如何?

标签: pythonlistrecursionnestednumbers

解决方案


您可以使用ast.literal_eval将输入字符串解析为 Python 表达式:

from ast import literal_eval
ans = recursive_list_sum(literal_eval(sys.argv[1]))

推荐阅读