什么是最符合Python风格的比较两个无序列表中一个或多个属性的方法?我想知道是否有一种Pythonic的方式,可以找出列表A中的每个项目是否存在一个列表B中的项目,其中列表A和列表B中的该项目在指定属性上匹配。
在我的示例案例中,我有两个.zip文件在一个单元测试中,并希望测试文件是否匹配,但我真正寻找的是我的个人工具集的好通用解决方案。 以下是我的第一次尝试:
也许这很琐碎,但我还没有找到一个好的方法来做到这一点。
问候 Michael
在我的示例案例中,我有两个.zip文件在一个单元测试中,并希望测试文件是否匹配,但我真正寻找的是我的个人工具集的好通用解决方案。 以下是我的第一次尝试:
with ZipFile('A.zip') as old:
with ZipFile('B.zip') as new:
oldFileInfo = old.infolist()
allFound = True
for info in new.infolist():
matches = [item for item in oldFileInfo if item.CRC == info.CRC and \
basename(item.filename) == basename(info.filename) ]
if len(matches) == 0:
allFound = False
break
也许这很琐碎,但我还没有找到一个好的方法来做到这一点。
问候 Michael
issubset
是在C内部实现的,而自定义迭代将在Python中执行。不过还是值得检查一下。 - bereal