python - 针对另一个列表子项搜索列表项

标签 python

我很难找出对 2 个列表进行搜索的最佳方法。我在这里浏览了许多建议使用 any()all() 或正则表达式之类的帖子...我现在确实可以使用它,但是我使用这种类型搜索很多,我真的很想做对。

SearchList = ['blah-1.2.3.tar.gz', 'blah-1.2.4.tar.gz', 'blah-1.2.5.tar.gz']
BaseList = ['blah-1.2.3', 'blah-1.2.4']

我想在 BaseList 中搜索 '1.2.3''1.2.4''1.2.5'SearchList 的项目中。我一直在 for 中使用 for 循环,但我想要一些更干净的东西,它会使用 pythons 列表理解/生成器表达式,以及 any() 或其他一些正则表达式类型的解决方案。

最佳答案

你可以这样做:

[a for a in SearchList if a[:-7] in BaseList]

a[:-7] 将在末尾去除 .tar.gz,剩下的就是基本的列表理解。它将返回 SearchList 中与 BaseList 中的元素相对应的元素列表。

关于python - 针对另一个列表子项搜索列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20407202/

相关文章:

python - 哈希表,非空槽已包含键,奇数数据值被新数据值替换

Python:将列表与其索引进行比较并创建一个新列表

python - 如何将从服务器下载的文件包含到 pip 安装中?

python - Reportlab 在表格中插入水平线

python - Sympy 和 Wolframalpha 给出不同的结果

python - 何时在 python 中使用运算符重载的经验法则

python - Elasticsearch批量插入失败时回滚

python - 如何将XYZ颜色空间更改为RGB 0-255

python - logger.setLevel(logging.INFO) 不会使 logger.info() 可见

Python:使类可迭代