将列表的列表导入Python

0 投票
1 回答
706 浏览
提问于 2025-04-29 21:54

我创建了一个列表,里面包含了学生的分数数据。这个列表叫做“class1”,每个学生都有一个名字,后面跟着三个分数。我可以顺利地对这个列表进行排序,也能把数据写入文件,格式看起来也很不错:

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 个回答

1

在编程中,有时候我们会遇到一些问题,想要找到解决方案。比如说,有人可能会在网上提问,寻求帮助。这个时候,其他人就会在一个叫做StackOverflow的网站上回答他们的问题。

StackOverflow是一个专门为程序员提供帮助的平台,大家可以在这里提问、回答问题,分享自己的经验和知识。这个网站上有很多人,大家都很乐意帮助别人解决编程上的难题。

当你在StackOverflow上看到一个问题时,通常会有很多人给出不同的答案。每个答案可能会有不同的思路和方法,帮助提问者找到合适的解决方案。

总之,StackOverflow就像一个大型的编程问答社区,大家可以在这里互相学习,解决问题,提升自己的编程技能。

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

撰写回答