我有一个reeeealy巨大的字符串,看起来像['elem1','elem2',(...)]
并包含大约100,000(!)个元素。
将其更改回列表的最佳方法是什么?
答案 0 :(得分:3)
eval("['elem1','elem2']")
为您提供了回复列表['elem1','elem2']
如果您的字符串看起来像这个["elem1","elem2",(...)]
,您可以使用json.read()
(在python 2.5或更早版本中)或json.loads()
(在python 2.6中)从json
模块加载安全。
答案 1 :(得分:1)
一种可能的解决方案是:
input = "['elem1', 'elem2' ] "
result_as_list = [ e.strip()[1:-1] for e in input.strip()[1:-1].split(",") ]
这将在内存中构建完整的结果列表。您可以切换到生成器表达式
result_as_iterator = ( e.strip()[1:-1] for e in input.strip()[1:-1].split(",") )
如果考虑内存消耗。
答案 2 :(得分:0)
如果您不想使用eval
,则可能会有效:
big_string = """['oeu','oeu','nth','nthoueoeu']"""
print big_string[1:-2].split("'")[1::2]