我希望我不会在这里重复:-)
我想知道过滤python列表的最有效方法是什么。我手头的任务是找出没有出现在其他列表中的列表元素。
我的第一个列表是对象列表(没有不必要的细节):
Class A:
def __init__(self,item1, item2):
self.item1 = item1
self.item2 = item2
稍后,在我的脚本中,我正在解析一个输入文本文件并list1
用真实数据填充一个(item1
和item2
字段都是字符串)
还有第二个列表,list2
仅包含对应于item1
. 我感兴趣的是list1
whereitem1
中没有的元素list2
。
(list1
包含大约 3000 个元素,list2
更大 - 大约 60000 个元素。)
我的第一次尝试很明显:
notMatched = list(itertools.ifilter(lambda x: x.item1 not in list2), list1))
现在,它按预期工作,给了我想要的东西,但我仍然想知道这是否是我能想到的最好的解决方案。有人知道吗?
谢谢