从另一个列表创建列表 - Python

时间:2013-07-18 19:29:52

标签: python arrays list

我正在尝试创建一个程序,用户输入一个字符串列表,每个字符串都在一个单独的行中。我希望能够返回,例如,第二行中的第三个单词。下面的输入将返回“蓝色”。

input_string("""The cat in the hat 
Red fish blue fish """)

目前我有这个:

def input_string(input):
    words = input.split('\n')

所以我可以使用单词[n]输出某一行,但是如何输出特定行中的特定单词?我一直试图实现能够输入单词[1] [2],但我创建多维数组的尝试失败了。

我一直试图将每个单词[n]分开几个小时,谷歌没有帮助。我很抱歉,如果这是完全明显的,但我几天前就开始使用Python而且完全卡住了。

4 个答案:

答案 0 :(得分:3)

这很简单:

input_string = ("""The cat in the hat 
Red fish blue fish """)

words = [i.split(" ") for i in  input_string.split('\n')]

它生成:

[['The', 'cat', 'in', 'the', 'hat', ''], ['Red', 'fish', 'blue', 'fish', '']]

答案 1 :(得分:1)

听起来你想在分割空间之前拆分os.linesep(当前操作系统的行分隔符)。类似的东西:

import os

def input_string(input)
   words = []
   for line in input.split(os.linesep):
       words.append(line.split())

这将为您提供每行的单词列表列表。

答案 2 :(得分:1)

还有一种名为splitlines()的方法。它将分为换行符。如果你没有传递任何参数,它将删除换行符。如果你传递它True,它会将它保留在那里,但仍然将线分开。

words = [line.split() for line in input_string.splitlines()]

答案 3 :(得分:0)

试试这个:

lines = input.split('\n')
words = []
for line in lines:
    words.append(line.split(' '))

英文:

  1. 构造一个行列表,这类似于从文件中读取。
  2. 遍历每一行,将其拆分为单词列表
  3. 将单词列表附加到另一个列表。这会产生一份清单。