Python列表理解在两个列表中

时间:2013-12-18 09:15:37

标签: python list list-comprehension

我坚持使用Python中的列表理解

我有以下数据结构

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

另外,我有一个特殊单词列表

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

我想浏览special_words中的所有special_words并获取words句中一起出现的所有special_words

结果我期待,

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

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

这意味着word1, word2 ,...special_word1_list

一起出现在句子中

我尝试了很多不同的方法来构建列表理解,遗憾的是没有任何成功。

如果你知道任何有关列表理解的好文章,我会感激任何帮助,请在此处发布。

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

我想你想要:

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

答案 2 :(得分:0)

或者,我建议创建一个字典,将特殊单词映射到与相应特殊单词相同的句子中出现的其他单词集:

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