두 가지가 있다고 가정 해 봅시다 set()
.
a = {('1', '2', '3', 'a'), ('1', '2', '4', 'a'), ('1', '2', '5', 'b')}
b = {('1', '2', '3', 'b'), ('1', '2', '4', 'b'), ('1', '2', '6', 'b')}
이제 내가하고 싶은 것은 설정된 차이를 찾아 b \ a
모든 튜플의 마지막 요소를 무시하는 것입니다. 따라서 다음과 같이하는 것과 같습니다.
a = {('1', '2', '3'), ('1', '2', '4'), ('1', '2', '5')}
b = {('1', '2', '3'), ('1', '2', '4'), ('1', '2', '6')}
In[1]: b - a
Out[1]: {('1', '2', '6')}
예상 출력 :
b \ a = {('1', '2', '6', 'b')}
각 세트를 수동으로 반복하고 각 세트를 검사하지 않고도이를 달성하는 명백한 / pythonic 방법이 tuple[:3]
있습니까?
set
하고 차이 연산을 겹쳐 씁니다. 내가 아는 즉시 사용 가능한 솔루션이 없으며 솔루션이 존재하는지 의심합니다.
aa = { t[:3] for t in a }
tuple
차이 연산자의 서브 클래스 및 재정의