Diyelim ki iki tane var 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')}
Şimdi, yapmak istediğim şey set farkını bulmak b \ a
ama her bir tuptan son elementi görmezden gelmek. Yani böyle bir şey yapmak gibi:
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')}
Beklenen çıktı:
b \ a = {('1', '2', '6', 'b')}
Her set üzerinde manuel olarak yineleme yapmak ve her birine karşı kontrol etmek zorunda kalmadan bunu başarmanın açık / pitonik bir yolu var mı tuple[:3]
?
set
ve fark işlemi üzerine yazın. Bildiğim hazır bir çözüm yok ve birinin var olduğundan şüpheliyim.
aa = { t[:3] for t in a }
tuple
Fark operatörünü alt sınıflara