我已经列出了一个列表,用于存储给定学生的分数数据。该列表被称为“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]"]
任何人都可以帮助我,我已经做了很多搜索,但找不到有同样问题的人。
谢谢,汤姆
答案 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]]