Python 如何从最深的元素遍历嵌套列表

Python 如何从最深的元素遍历嵌套列表,python,Python,我正在用python编写一个统计查询系统。用户的输入必须如下所示: ["Comand",parameter1, parameter2,.... ,parametern] 我的代码读取第一个元素,并查看是否有具有该名称的函数。然后获取参数并执行 问题是用户可以输入具有此结构的查询 ["Cmd1",["cmd2",p1, p2..., pn], x2,...,xn] 因此,我需要先执行cmd2,然后使用它返回的内容来执行cmd1。嵌套是任意的 谢谢你的帮助 def process_args(us

我正在用python编写一个统计查询系统。用户的输入必须如下所示:

["Comand",parameter1, parameter2,.... ,parametern]
我的代码读取第一个元素,并查看是否有具有该名称的函数。然后获取参数并执行

问题是用户可以输入具有此结构的查询

["Cmd1",["cmd2",p1, p2..., pn], x2,...,xn]
因此,我需要先执行cmd2,然后使用它返回的内容来执行cmd1。嵌套是任意的

谢谢你的帮助

def process_args(user_input):
    args = []
    command = user_input[0]
    for item in user_input[1]:
        if type(item) == list:
            args.append(process_args(item))
        else:
            args.append(item)
    return run_command(command, args)
测试调用,输出:

>>> answer = ExecList( [ "Foo", 10, (20,30), ["Bar", 40, "baz" ] ] )
Bar(40, 'baz')
Foo(10, (20, 30), 12345)
>>> answer
23456

您能否提供一个示例,说明如何从列表中“执行”命令?循环参数,如果其中一个恰好是列表,则(递归)处理其元素。作为设计建议,为什么不为此使用嵌套字典结构?如果
不是列表,则会引发错误,因为您盲目调用
[0]
在其上:
command=user\u input[0]
如果/else签出
for
loop.OP明确表示它将是一个列表,则应移动
。他可能会在修改这个答案以供使用时添加任何适当的健全性检查。虽然这个代码片段可能会解决这个问题,但确实有助于提高您文章的质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。还请尽量不要用解释性注释挤满你的代码,这会降低代码和解释的可读性!
>>> answer = ExecList( [ "Foo", 10, (20,30), ["Bar", 40, "baz" ] ] )
Bar(40, 'baz')
Foo(10, (20, 30), 12345)
>>> answer
23456