我很难找出对 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/