Pythonで2つのリストを比較する必要があり、set
コマンドを使用して類似のアイテムを見つけることは知っていますが、コードを作成する代わりに、自動的に比較する別のコマンドを使用できますか?
それぞれにないアイテムを見つけたいです。リスト1は次のとおりです。
[1, 2, 3, 4, 5, 6]
リスト2は次のとおりです。
[1, 2, 3, 4, 6]
5
がリストにありませんが、できればコマンドが必要ですが、比較をループする方法は知っています。
対称差が必要なようです:
a = [1,2,3]
b = [3,4,5]
print(set(a)^set(b))
>>> [1,2,4,5]
docs は、開始するのに適した場所です。以下に、セットの比較方法を決定するのに役立ついくつかの例を示します。
交差点(両方のセットにあるアイテム)を見つけるには:
>>> a = set([1, 2, 3, 4, 5, 6])
>>> b = set([4, 5, 6, 7, 8, 9])
>>> a & b
set([4, 5, 6])
違いを見つけるには(1セットのみのアイテム):
>>> a = set([1, 2, 3, 4, 5, 6])
>>> b = set([4, 5, 6, 7, 8, 9])
>>> a - b
set([1, 2, 3])
>>> b - a
set([7, 8, 9])
対称差(両方ではなく、どちらか一方にあるアイテム)を見つけるには:
>>> a = set([1, 2, 3, 4, 5, 6])
>>> b = set([4, 5, 6, 7, 8, 9])
>>> a ^ b
set([1, 2, 3, 7, 8, 9])
お役に立てば幸いです。
単純なリストの理解
In [1]: a=[1, 2, 3, 4, 5, 6]
In [2]: b=[1, 2, 3, 4, 6]
In [3]: [i for i in a if i not in b]
Out[3]: [5]