将数组转换为字符串

时间:2010-06-30 08:28:30

标签: python list

我有一个reeeealy巨大的字符串,看起来像['elem1','elem2',(...)]并包含大约100,000(!)个元素。 将其更改回列表的最佳方法是什么?

3 个答案:

答案 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]