将数组的文本文件转换为Python列表

时间:2015-04-18 22:15:50

标签: python text

我的文本文件由同一行上的一系列数组组成(即没有缩进)。我试图将这些数组放入python列表中。

文本文件是这样的:

[1,2,3,4],[1,2,3,5],[1,2,3,6],[1,2,3,7],[1,2,3,8],[1,2,3,9],[1,2,3,10]........

我试图接受这个并制作一份清单,例如:

[[1,2,3,4],[1,2,3,5],[1,2,3,6],[1,2,3,7],[1,2,3,8],[1,2,3,9],[1,2,3,10]]

我尝试使用read方法,但我得到的只是一个巨大的字符串。

1 个答案:

答案 0 :(得分:1)

首先,在您的文件中read()并将其保存到变量(相当于此):

a = '[1,2,3,4],[1,2,3,5],[1,2,3,6],[1,2,3,7],[1,2,3,8],[1,2,3,9],[1,2,3,10]'

如果您不想使用eval(),则可以使用更安全的ast.literal_eval()

import ast
list(ast.literal_eval(a))

如果您不想使用任何类型的评估,可以使用内置函数和字符串方法:

[list(map(int, line.split(','))) for line in a.strip('[]').split('],[')]

这些都会产生以下结果:

[[1, 2, 3, 4], [1, 2, 3, 5], [1, 2, 3, 6], [1, 2, 3, 7], [1, 2, 3, 8], [1, 2, 3, 9], [1, 2, 3, 10]]