Digamos que eu tenho dois set()
s:
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')}
Agora, o que eu quero fazer é encontrar a diferença definida, b \ a
mas ignorando o último elemento de cada tupla. Então é como fazer algo assim:
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')}
Saída esperada:
b \ a = {('1', '2', '6', 'b')}
Existe alguma maneira óbvia / pitônica de conseguir isso sem ter que iterar manualmente sobre cada conjunto e comparar com cada um tuple[:3]
?
set
e substitua a operação de diferença. Não tenho uma solução pronta para uso e duvido que exista.
aa = { t[:3] for t in a }
tuple
e substitua o operador de diferença