将列表列表读入Python

时间:2014-10-27 11:30:17

标签: python list

我已经列出了一个列表,用于存储给定学生的分数数据。该列表被称为“class1”,每个学生的名字后跟3个分数。我可以很好地排序这个列表,并可以写入一个文件,以正确的格式显示数据:

class1=[["Tom",7,2,1],["Jo",8,0,0],["Adelphe",9,0,0]]

写的时候看起来像这样我很满意:

['Tom', 7, 2, 1]
['Jo', 8, 0, 0]
['Adelphe', 9, 0, 0]

当我尝试读取相同的列表时出现问题。每个子列表都被读取为字符串。我似乎无法改变这一点。

以下是代码:

class1 = [line.strip() for line in open("data2.txt", 'r')]

这是读取时列表的样子,因为你可以看到每个子列表周围都有撇号,这意味着它们是class1列表中的字符串:

["['Tom', 7, 2, 1]", "['Jo', 8, 0, 0]", "['Adelphe', 9, 0, 0]"]

任何人都可以帮助我,我已经做了很多搜索,但找不到有同样问题的人。

谢谢,汤姆

1 个答案:

答案 0 :(得分:1)

>>> import ast
>>> with open('/path/to/data2.txt', 'r') as classes:
        lines = [ast.literal_eval(line.strip()) for line in classes]

>>> print lines
[['Tom', 7, 2, 1], ['Jo', 8, 0, 0], ['Adelphe', 9, 0, 0]]