我坚持使用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
我尝试了很多不同的方法来构建列表理解,遗憾的是没有任何成功。
如果你知道任何有关列表理解的好文章,我会感激任何帮助,请在此处发布。
答案 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}