import re
s = "[abc,7.56],[dfe,2.44],[iij,2.31]"
list_contents = re.findall(r"\[(.+?)\]", s) # non-greedily take what are between [..]
split_as_strings = [content.split(",") for content in list_contents]
result = [[pair[0], float(pair[1])] for pair in split_as_strings]
如果模式没有如评论中所要求的那样发生剧烈变化,则有三个步骤:
,
上拆分内容result
将是和中间结果:
如果您想要列表的列表,请使用
append
:你正在做的是解析。这一点都不微不足道:很多边缘案例等等
您的输入看起来确实像JSON的某种方言,这是一种非常有名的数据格式,可以这样解析:
如果需要的话,不要尝试构建自己的解析器,而是看看https://tomassetti.me/parsing-in-python/中枚举的解析库
相关问题 更多 >
编程相关推荐