首页 > 解决方案 > 检查包含单词和短语的列表元素是否存在于另一个列表中

问题描述

我有一个单词和短语列表:

words = ['hi', 'going on', 'go']

我有一个成绩单:

transcript ="hi how are you. I am good. what's going on.".split('.')

我需要在这份成绩单中找到匹配项。对于上面的示例,匹配项位于成绩单的第一个和第三个元素中。

我遵循了here的答案,并尝试使用以下代码:

for i in range(len(transcript)):
    if any(word in transcript[i] for word in words):
        print(i)

它的输出是:

1
2
3

但这不是我想要的。我想从输出中排除“我很好”的句子。预期的输出是:

1
3

标签: pythonlist

解决方案


你可以试试

for i in range(len(transcript)):
    if any(word in [i for i in transcript[i].split(" ")] if len(word.split(" ")) < 2 else word in transcript[i] for word in words):
        print(i+1)

那将输出

1
3

此代码不会检查单词是否只是成绩单[i] 的一部分,例如 'good' 中的 'go'。


推荐阅读