从包含列表的字符串列表返回列表的列表

2024-04-16 15:34:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字符串列表,其中字符串有列表。我想返回一个列表列表。你知道吗

我可以从以下几点开始:

old_list = ['[1,2,m]','[4.1,3.5,5]','[x,y,z]', '["t","u","v"]']

以下是我想要的:

new_list = [[1,2,'m'],[4.1,3.5,5],['x','y','z'],['t','u','v']]

Tags: 字符串列表newoldlist
1条回答
网友
1楼 · 发布于 2024-04-16 15:34:05

可以说,这看起来像是一个你必须自己造锤子的案子。在可以的地方使用literal_eval的组合,然后在不能的地方构建一个自定义解析器。您可能需要根据需要添加更多的案例。你知道吗

from ast import literal_eval

old_list = ['[1,2,m]','[4.1,3.5,5]','[x,y,z]', '["t","u","v"]']

def hierarchical_convert(s):
    try:
        return int(s)
    except ValueError:
        try:
            return float(s)
        except ValueError:
            return(s)

new_lst = []
for s in old_list:
    try:
        out = literal_eval(s)
    except ValueError: #need to split on comma ourselves, and invoke custom parsing
        out = [hierarchical_convert(item) for item in s[1:-1].split(',')]
    new_lst.append(out)


print(new_lst)
#Output
[[1, 2, 'm'], [4.1, 3.5, 5], ['x', 'y', 'z'], ['t', 'u', 'v']]

相关问题 更多 >