저는이 두 목록을 가지고 있지만 다른 하나를 뺄 필요가 있습니다. 그러나 정규 "-"는 작동하지 않으며, 둘 중 하나는 교차 부분이나 XOR (^)입니다.두 개의 튜플 목록을 뺍니다
A = [(0, 1)]
B = [(0, 0), (0,1), (0, 2)]
는 기본적으로 내가 원하는 것은 :
B - A = [(0, 0), (0, 2)]
저는이 두 목록을 가지고 있지만 다른 하나를 뺄 필요가 있습니다. 그러나 정규 "-"는 작동하지 않으며, 둘 중 하나는 교차 부분이나 XOR (^)입니다.두 개의 튜플 목록을 뺍니다
A = [(0, 1)]
B = [(0, 0), (0,1), (0, 2)]
는 기본적으로 내가 원하는 것은 :
B - A = [(0, 0), (0, 2)]
가있는 경우 B
및 A
에 중복 튜플이 없을 수도 있습니다. b 전자보다 세트로 유지하고, 세트의 difference
사용 : 두 세트 사이의 intersection
찾을처럼
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)}
당신은 다른 작업을 수행 할 수 있습니다 :
>>> set(B) & set(A)
{(0, 1)}
심지어 걸릴 그들의 symmetric_difference
:
>>> set(B)^set(A)
{(0, 0), (0, 2)}
목록을 집합으로 변환하여 이러한 작업을 수행 할 수 있습니다. 설정의 차이 : 필요한 경우
r = set(B)-set(A)
변환이 나열 : 목록 (R)
세트에서 작업하는 목록에서 작업 "에서"실행에 비해 효율적이다 : using lists vs sets for list differences
하는'.difference 같은 방법을 사용하는 경우 ''A'를 집합으로 변환 할 필요가 없으므로 임의의 반복을 취할 수 있습니다. –
@JonClements 아, 그렇습니다. 감사 –