मान लें कि मेरे पास दो 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')}
अब, मैं जो करना चाहता हूं वह है सेट अंतर को ढूंढना 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')}
क्या प्रत्येक सेट पर मैन्युअल रूप से पुनरावृति करने और प्रत्येक के खिलाफ जांच करने के बिना इसे प्राप्त करने का कोई स्पष्ट / पायथोनिक तरीका है tuple[:3]
?
set
और अंतर ऑपरेशन को अधिलेखित करें। कोई भी आउट-ऑफ-द-बॉक्स समाधान नहीं है जो मुझे पता है और मुझे संदेह है कि कोई मौजूद है।
aa = { t[:3] for t in a }
tuple
और अंतर ऑपरेटर ओवरराइड