Python - 如何动态地将列表拆分为两个单独的列表

时间:2017-09-14 14:56:09

标签: python python-3.x list

我正在使用Python-3,我正在阅读一个文本文件,该文件可以有多个段落用' \ n'分隔。我想将所有这些段落分成一个单独的列表。输入文件中可以有n个段落。

所以这个分割和输出列表的创建应该是动态发生的,这样我就可以通过输入段号作为列表[2]或列表[3]等来查看特定的段落。

到目前为止,我已经尝试了以下过程:

input = open("input.txt", "r")  #Reading the input file
lines = input.readlines()       #Creating a List with separate sentences
str = ''                        #Declaring a empty string

for i in range(len(lines)):
    if len(lines[i]) > 2:       #If the length of a line is < 2, It means it can be a new paragraph
        str += lines[i]

此方法不会将段落存储到新列表中(因为我不知道该怎么做)。它只会删除&#39; \ n&#39;并将所有输入行存储到str变量中。当我试图显示str的内容时,它将输出显示为单词。但我需要它们作为句子。

并且我的代码应该存储所有句子,直到第一次出现&#39; \ n&#39;分成一个单独的列表等等。

有关于此的任何想法吗?

更新 我找到了一种方法来打印所有存在的行,直到&#39; \ n&#39;。但是当我尝试将它们存储到列表中时,它将被存储为字母而不是整个句子。以下是参考的代码段

input = open("input.txt", "r")
lines = input.readlines()
input_ = []

for i in range(len(lines)):
    if len(lines[i]) <= 2:
        for j in range(i):
            input_.append(lines[j]) #This line is storing as letters.

甚至&#34; input_ + = lines&#34;存储为字母,而不是句子。

知道如何修改此代码以获得所需的输出吗?

1 个答案:

答案 0 :(得分:2)

不要忘记执行input.close(),否则文件将无法保存。

或者,您可以使用with

#Using "with" closes the file automatically, so you don't need to write file.close()
with open("input.txt","r") as file:
    file_ = file.read().split("\n")

file_现在是一个列表,每个段落都是一个单独的项目。

就像2行一样简单。