私はこれらの2つのリストを持っていますが、他のものから1つを減算する必要がありますが、通常の " - "は動作しませんし、交差部もXOR(^)もありません。私が欲しいものを基本的にタプルの2つのリストを互いに引き離します
A = [(0, 1)]
B = [(0, 0), (0,1), (0, 2)]
です:
B - A = [(0, 0), (0, 2)]
私はこれらの2つのリストを持っていますが、他のものから1つを減算する必要がありますが、通常の " - "は動作しませんし、交差部もXOR(^)もありません。私が欲しいものを基本的にタプルの2つのリストを互いに引き離します
A = [(0, 1)]
B = [(0, 0), (0,1), (0, 2)]
です:
B - A = [(0, 0), (0, 2)]
を見つけることができますB
とA
に重複するタプルはありません。bセットとしてそれらを維持し、セットのdifference
を使用する電子よりよい:
A = [(0, 1)]
B = [(0, 0), (0,1), (0, 2)]
diff = set(B) - set(A) # or set(B).difference(A)
print(diff)
# {(0, 0), (0, 2)}
あなたは、両方のセットの間intersection
を見つけるのような他の操作を実行できます。
>>> set(B) & set(A)
{(0, 1)}
、あるいはそのsymmetric_difference
を取る:
>>> set(B)^set(A)
{(0, 0), (0, 2)}
このような操作は、リストをセットに変換することで実行できます。 .difference `のようなメソッドを使用している場合using lists vs sets for list differences
:必要に応じて一覧表示する
変換:リスト(R)セットでの作業
は、リスト上の操作「の」実行中に比べて効率的である差異を設定します'あなたが明示的に' A'をセットに変換する必要はありません。なぜなら、それは反復可能であるからです。 –
@JonClementsああ、そのことをよく見て。ありがとう –