【问题标题】:Python: Reading text file and splitting into different listsPython:读取文本文件并拆分为不同的列表
【发布时间】:2017-02-11 08:23:11
【问题描述】:

我有一个包含两行文本的文本文件。每行包含用逗号分隔的学生姓名。

我正在尝试编写一个程序来读取每一行并将其转换为列表。我的解决方案似乎制作了两个列表,但我不知道如何区分这两个列表,因为这两个列表都称为“文件列表”。例如,我可能需要附加到第二个列表。如何区分这两者?

或者它是否可以创建具有不同名称的完全独立的列表?我希望程序能够理想地处理文本文件中的多行。

我的代码是:

    filelist=[]

    with open("students.txt") as students:

            for line in students:

                    filelist.append(line.strip().split(","))


    print(filelist)

【问题讨论】:

  • 好吧,如果您希望它处理任意数量的行,那么您将无法每次都创建不同的列表。在这种情况下,您很可能需要一个嵌套列表。
  • 您能准确地显示studentds.txt 中的内容吗?
  • 丽贝卡、莎拉、马修、查理珍妮、马修、劳拉、尼基
  • 对不起,第一行应该有4个学生,第二行应该有4个学生!
  • 您希望每一行都在自己的单独列表中吗?

标签: python list file text


【解决方案1】:

你必须像这样创建一个多维数组:

text = open("file.txt")

lines = text.split("\n")
entries = []
for line in lines:
    entries.append(line.split(","))

如果你的文件是

John,Doe
John,Smith

那么条目将是:

[["John", "Doe"], ["John", "Smith"]]

【讨论】:

  • 谢谢,如果我希望附加到任一列表中,我该如何区分这些列表?
  • 这个答案不是在做问题中的代码已经做的事情吗?
  • @Computing102 只使用列表索引。如果您想要名称列表,请说第 5 行。只需说 for name in entires[5]:
  • @Computing102: entries 只是一个列表,恰好由另外两个列表组成。您可以像访问任何其他列表一样访问其元素:entries[0] 将返回 ["John", "Doe"]entries[1] 将返回 ["John", "Smith"]
  • @Computing102 如果这个答案解决了,或者帮助解决了你的问题,那么考虑接受它。
【解决方案2】:

在您的代码中,filelist 将被视为列表列表,因为您将列表附加到它,而不是元素, 考虑做filelist += line.strip().split(","),它将连接列表

【讨论】:

  • 为什么不直接使用filelist.extend()
  • @Mr.goosberry 与那里提到的几乎相同:link
【解决方案3】:

两行完成

with open("file.txt") as f:
    qlist = map(lambda x:x.strip().split(","), f.readlines())

with open("file.txt") as f:
    qlist = [i.strip().split(",") for i in f.readlines()]

【讨论】:

    【解决方案4】:

    如果您希望每行都有一个列表,您可以使用字典,其中键是行号,字典条目的值是该行的名称列表。像这样的

    with open('my_file.txt', 'r') as fin:
        students = {k:line[:-1].split(',') for k,line in enumerate(fin)}
    
    print students
    

    line[:-1]是去掉每行末尾的回车

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-25
      • 1970-01-01
      • 2021-08-04
      • 2015-06-23
      • 2019-04-03
      相关资源
      最近更新 更多