python - 检查包含单词和短语的列表元素是否存在于另一个列表中
问题描述
我有一个单词和短语列表:
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
解决方案
你可以试试
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'。
推荐阅读
- javascript - 无法在 mvc 5 中使用 jquery POST 将值从视图传递到控制器
- javascript - 谷歌应用脚本选择具有特定列的特定行
- java - 当应用程序部署在 tomcat 中时,ServletUriComponentsBuilder.fromCurrentContextPath() 返回 0.0.0.0:8080
- javascript - Postman: Could not convert YAML response to JSON
- angular - Openlayers 3 选择交互无法添加事件条件
- python - 使用pandas读取没有结构的数据文件(没有标题行和不同长度的行)
- c++ - [[deprecated]] 导致 VS2017 中的构建失败(错误 C4996)
- c - 在 C 中使用递归创建二叉树
- intellij-idea - 告诉 IntelliJ XML 属性是函数和参数
- python - 如何找到最大可能的协方差矩阵,或具有非缺失成对协方差的最大列集