python - 我如何在python中用另一个列表过滤一个列表
问题描述
我对 python 很陌生,基本上我需要过滤并获取 listA 中存在于 listB 中的所有项目。
listA = ['cat','dog','cow']
listB = ['sentence 1','sentence 2 contains cat','sentence 3',
'sentence 4','sentence 5','sentence 6 contains dog']
result = ['sentence 2 contains cat','sentence 6 contains dog']
解决方案
它可以像这样简单,使用列表推导:
>>> lst = [x for x in listB for a in listA if a in x]
>>> lst
['sentence 2 contains cat', 'sentence 6 contains dog']
编辑:这与Ollie's 的解决方案基本相同,但运行速度快约 8-10%。对于双向比较,只需替换if a in x
为if (a in x) or (x in a)
(为清楚起见添加了括号)。
推荐阅读
- flutter - 如何访问子列表数据并在 Dart/Flutter 中的函数中返回?
- github - 如何将环境变量从存储库传递到 Github 操作脚本
- azure-data-factory - 是否可以使用 powershell 为长时间运行的作业设置 ADF 触发器超时
- c# - 使用 ImageMagick.Net 修剪图像边框在修剪后的图像中产生细边框
- oracle - Oracle 部署端点出现 404 错误
- javascript - 创建一个计算结果为字符串并且可以将其他字符串作为属性的构造
- microsoft-teams - 如何将消息扩展固定到 Microsoft Teams 中的一组用户的撰写框
- java - 授予pdf后如何获取Jasper参数值
- typescript - 具有时间触发功能的 Azure Functions 如何在本地进行测试
- react-native - 如何解决这个依赖安装错误?