在Python中解析多行

Rel*_*der 1 python parsing python-3.x

我正在学习Python,我需要编写一个程序来确定一首诗中出现次数最多的单词.困扰我的问题是将一首诗的一行解析成包含该诗的单词的单一列表.当我解决它时,我将毫不费力地确定出现次数最多的单词.

我可以通过重复调用input()来访问诗的行,最后一行包含三个字符###.

所以,我写道:

while True:
   y = input()
   if y == "###":
     break
   y = y.lower()
   y = y.split()
Run Code Online (Sandbox Code Playgroud)

并输入:

Here is a line like sparkling wine
Line up now behind the cow
###
Run Code Online (Sandbox Code Playgroud)

得到的结果:

['here', 'is', 'a', 'line', 'like', 'sparkling', 'wine']
['line', 'up', 'now', 'behind', 'the', 'cow']
Run Code Online (Sandbox Code Playgroud)

如果我试着打电话给y [0],我得到:

here
line
Run Code Online (Sandbox Code Playgroud)

如何在同一个变量中连接两个列表,或者如何将每一行分配给不同的变量?

任何提示都表示赞赏.谢谢.

Mar*_*ers 5

您需要使用以下内容添加y到现有列表list.extend():

words = []
while True:
   y = input()
   if y == "###":
     break
   y = y.lower()
   y = y.split()
   words.extend(y)
Run Code Online (Sandbox Code Playgroud)

现在words是一个列表,其中包含用户输入的行的所有单词.

演示:

>>> words = []
>>> while True:
...    y = input()
...    if y == "###":
...      break
...    y = y.lower()
...    y = y.split()
...    words.extend(y)
... 
Here is a line like sparkling wine
Line up now behind the cow
###
>>> print(words)
['here', 'is', 'a', 'line', 'like', 'sparkling', 'wine', 'line', 'up', 'now', 'behind', 'the', 'cow']
Run Code Online (Sandbox Code Playgroud)

  • @Elazar:不,`y`是一个单词列表.OP想要*一个*单词列表,而不是列表列表. (3认同)