2013-07-18 243 views
2

我試圖創建一個程序,用戶在其中輸入一個字符串列表,每個列表單獨一行。我希望能夠返回,例如,第二行中的第三個單詞。下面的輸入會返回「藍色」。從另一個列表創建一個列表 - Python

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

目前我有這樣的:

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

這樣我就可以輸出一定行用字[N],但如何做輸出特定的詞在特定行?我一直試圖實現能夠鍵入單詞[1] [2],但我嘗試創建一個多維數組失敗了。

我一直試圖分裂每個單詞[n]現在幾個小時,谷歌沒有幫助。我很抱歉,如果這是完全明顯的,但我剛剛開始使用Python幾天前,並完全卡住。

+0

你需要一個更多的空間分割。 –

+1

在換行符上分割會給出一個行列表,然後在空白處分割一行以獲得該行上的單詞列表。 – Keith

回答

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', '']] 
+0

非常感謝你!這是完美的。 :)) – eltb

1

這聽起來像你想拆分os.linesep(當前操作系統的行分隔符),然後再拆分空間。例如:

import os 

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

這會給你一個每行的單詞列表清單。

+1

你可能不應該使用'os.linesep':http://stackoverflow.com/a/6165711/691859 – 2rs2ts

+0

呵呵,這真是太棒了,謝謝。 – Tom

0

嘗試這種情況:

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

英文:

  1. 常量列出行列表,這將類似於從文件中讀取。
  2. 循環遍歷每行,將其拆分成單詞列表
  3. 將單詞列表追加到另一個列表。這會產生一個列表清單。
1

還有一種叫做splitlines()的方法。它將在換行符上分割。如果你不傳遞任何參數,它將刪除換行符。如果你通過它True,它會保持在那裏,但分開線路。

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