Python
で2つのリストの差分を取得するには、主にset()
を使用します。set()
はリストの重複を無視し、計算を効率化します。set(temp1) - set(temp2)
を使うと、temp1
に含まれていてtemp2
にない要素を簡単に取得できます。
例
temp1 = ['One', 'Two', 'Three', 'Four']
temp2 = ['One', 'Two']
# 差分を取得
result = list(set(temp1) - set(temp2)) # 出力: ['Three', 'Four']
順序を保持するにはリスト内包表記が便利です。
s = set(temp2)
result = [x for x in temp1 if x not in s] # 順序を保持
対称差(symmetric difference)を使うと、両方のリストで共通しない要素を取得できます。
result = list(set(temp1) ^ set(temp2)) # 出力: ['Three', 'Four']