所以我试图创建一个程序,以多种方式(字母顺序、数字顺序等)对文本文件的内容进行排序。为此,我需要为文本文件中的每个项目创建一个新列表。假设我的文本文件如下所示:
Isaac 2 5 3
Aaron 9 8 10
其中一种排序方法的输出(按字母顺序,仅显示最高分)应如下所示:
Aaron 10
Isaac 5
为此,我需要为文本文件中的每一行创建一个新列表,这样我就可以通过多种方式对其进行排序,并且可以删除任何不相关的信息,即较低的分数。我已经尝试过:
mylist = fileName.split("\n")
甚至:
mylist = fileName.readlines()
但是这些只是创建一个大列表,其中每行都有一个新项目,而不是每行都有一个单独的列表。有没有办法用这两种方法或我没听说过的另一种方法来做到这一点?
最佳答案
在第一次迭代中,假设 f
是文件对象,您可以简单地执行
mylist = [line.split() for line in f]
这将为您提供一个列表列表,例如
[["Isaac", "2", "5", "3"], ["Aaron", "9", "8", "10"]]
但是,如果要对数字进行排序,则需要首先将字符串转换为整数(或 float ?),因为 "9">"10"
。如何执行此操作取决于数据的结构。
假设您的行的第一个元素是名称,之后的所有其他元素都是整数,您可以使用
mylist = []
for line in f:
items = line.split()
mylist.append([items[0]] + [int(item) for item in items[1:]])
结果:
[['Isaac', 2, 5, 3], ['Aaron', 9, 8, 10]]
关于python - 为文本文件中的每一行创建一个新列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30392187/