2014-06-27 38 views
2

我是python的新手,並且有一個簡單的疑問。Python列表理解(將句子轉換爲文字)

我在嘗試列表理解。

我想從字符串中添加單詞到列表中。但無法這樣做。我究竟做錯了什麼?

sentence = "there is nothing much in this" 

wordList = sentence.split(" ") #normal in built function 
print wordList 

wordList = [ x for x in sentence if x!=" "] #using list comprehension 
print wordList 
+2

'sentence.split(」「)'已經爲您提供了單詞的列表,所以我不知道是否有這裏有任何問題。 –

+0

我想了解清單compreshion。我試圖做同樣的事情。 – abc

回答

2

以下:如您所願

wordList = [ x for x in sentence if x!=" "] #using list comprehension 
print wordList 

將無法​​正常工作。

列表Python中的Comphrehsnios基本上是寫正常for循環的簡寫形式。

以上可以寫成:

wordList = [] 
for x in sentence: 
    if x != "": 
     wordList.append(x) 

print wordList 

你明白爲什麼這是行不通的?

這實際上會迭代字符串sentence中的所有字符。

任何你可以用for循環做的事情,你可以用列表理解。

例子:

xs = [] 
for i in range(10): 
    if i % 2 == 0: 
     xs.append(i) 

等同於:

xs = [i for i in range(10) if i % 2 == 0] 
+2

我會斷言,在列表理解中執行sentence.split()是完全多餘的,因此是不必要的 - 只需要將句子.split()本身工作。 – Ajean

+1

我同意@Ajean - 我的答案試圖說明OP ** **理解真正是什麼,以及如何對它們進行建模和思考。 –