私はここで複製していないことを願っています:-)
Pythonリストをフィルタリングする最も効果的な方法は何だろうと思います。私が手にしているタスクは、他のリストに表示されていないリスト要素を見つけることです。
私の最初のリストはオブジェクトのリストです(不要な詳細は含まれていません):
Class A:
def __init__(self,item1, item2):
self.item1 = item1
self.item2 = item2
後で、私のスクリプトで、入力テキストファイルを解析し、list1
実際のデータを入力しています(フィールドitem1
とitem2
フィールドの両方が文字列です)
list2
に対応する文字列のリストだけを含む2番目のリストもありますitem1
。私が興味を持っているのは、にないlist1
場所の要素です。
(約3000個の要素が含まれ、より大きく、約60000個の要素が含まれます。)item1
list2
list1
list2
私の最初の試みは非常に明白です:
notMatched = list(itertools.ifilter(lambda x: x.item1 not in list2), list1))
今では、期待どおりに機能し、私が望むものを正確に提供しますが、それが私が思いついた最善の解決策であるかどうかはまだ疑問です。誰かアイデアはありますか?
ありがとう