gpt4 book ai didi

python - 将 Lisp 输入解析为 python 时出现问题

转载 作者:太空宇宙 更新时间:2023-11-03 13:01:40 24 4
gpt4 key购买 nike

我正在尝试将 lisp 输入解析为 python 列表。但是当我解析输入时,我得到了字符串列表,但我想要单个元素作为 int。

示例:当我解析以下输入时:"(2 (10 (5 11))) (5 6) (4)"输出:[[['2'], ['10', '5']], [['5'], ['6']], [['4']]]

我使用:[[map(int, x) for x in lst] for lst in test] 将字符串转换为 int 但此函数只会解析2级的嵌套列表。但是如果我有一个超过2级的嵌套列表,我应该如何使用它来解析?

我尝试了 pyparsing,但我没有正确理解它。

最佳答案

def as_int(xs):
if isinstance(xs, list):
return map(as_int, xs)
elif isinstance(xs, str):
return int(xs)
return xs

用法:

>>> xs = [[['2'], ['10', '5']], [['5'], ['6']], [['4']]]
>>> print as_int(xs)
[[[2], [10, 5]], [[5], [6]], [[4]]]

关于python - 将 Lisp 输入解析为 python 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18953433/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com