2013-12-18 183 views
0

我堅持列表理解Python中Python列表理解

我有以下數據結構

dataset = [sentence1, sentence2,...] 
sentence = [word1, word2,...] 

另外,我有特殊的單詞列表

special_words = [special_word1, special_word2, special_word3,...] 

我想運行special_words中的所有special_words並獲取與special_words一起出現在句子中的所有words

至於結果,我想到,

data=[special_word1_list, special_word2_list, ...], 

,其中special_word1_list = [word1, word2, ...]

這意味着word1, word2 ,...是在句子連同special_word1_list

我試過很多差異的方式來構建列表理解,可惜沒有任何成功。

我將不勝感激任何幫助,除此之外,如果你知道任何關於列表理解的好文章,請將它發佈在這裏。

+2

你能提供一個例子嗎?這是有點不清楚,如果你是在句子後,有一個特殊的詞,或者如果你是在一個特殊的句子中的話後......等等...... –

+1

很模糊的問題。請提供一個更清晰的例子。 –

+0

當你說_「'word1','word2',...和'special_word1_list'一起在句子中時,」_你是指_「'word1','word2',...和句子一起'special_word1'「_? – Eric

回答

3
data = [ 
    { 
     word 
     for sentence in sentences 
      if special_word in sentence 
       for word in sentence 
    } 
    for special_word in special_words 
] 
2

我想你想:

data = [sentence for sentence in data 
     if any(word in special_words 
       for word in sentence)] 
+0

一句話中的所有單詞都應該在那裏,你只會得到特別的。 –

0

另外,我建議建立一個字典映射特殊的話套在同一個句子中出現的爲各自的特殊字,換句話說:

{sw : {w for ds in dataset if sw in ds for w in ds if w != sw} 
     for sw in special_words}