python - 为文本文件中的每一行创建一个新列表?

标签 python list sorting text-files

所以我试图创建一个程序,以多种方式(字母顺序、数字顺序等)对文本文件的内容进行排序。为此,我需要为文本文件中的每个项目创建一个新列表。假设我的文本文件如下所示:

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/

相关文章:

arrays - 如何找到多个数组项的所有组合

python - 超过锁等待超时;尝试使用 python 更新 mysql 表时尝试重新启动事务'错误

python - 在 Python 2.7 中获取输入的最快方法是什么?

c# - 为列表中的每个项目设置权重

list - 如何在列表和 ListT monad 转换器之间干净地转换?

JavaScript 按属性值对字典进行排序

Python索引错误: list assignment index out of range

php - 在 MySQL 查询之前解码 ISO-8859-1 并编码为 UTF-8

string - 在 CL 中测试列表元素是否为字符串

c++ - 使用数组查找 HCF,得到未知输出 (C++)