我希望我不在這裏複製:-)Python:過濾列表的最有效方法
我想知道什麼是過濾python列表最有效的方式。 我手中的任務是找出列表中沒有出現在其他列表中的元素。
我的拳頭列表對象的列表(沒有不必要的細節):
Class A:
def __init__(self,item1, item2):
self.item1 = item1
self.item2 = item2
後來,在我的劇本我解析一個輸入文本文件,並用實際數據填充一個list1
(包括item1
和item2
字段是字符串)
還有第二個列表list2
,其中只包含一個字符串列表,其中包括item1
。我感興趣的是list1
中的元素,其中item1
不在list2
中。
(list1
包含約3000元,list2
較大 - 大約60000元。)
我的拳頭嘗試是相當明顯的:
notMatched = list(itertools.ifilter(lambda x: x.item1 not in list2), list1))
現在,它將按預期工作,給我什麼我想,但我仍然想知道這是否是我可以帶來的最佳解決方案。 任何想法的人?
謝謝
您的解決方案將受益於list2'轉換'到'set',但你可能會發現,在達人的答案列表理解是更快(更容易閱讀) –