परिचय:
वहाँ (शायद) सबसे अच्छा समाधान कर रहे हैं। लेकिन आपको इसे जानना होगा और इसे याद रखना होगा और कभी-कभी आपको यह उम्मीद करनी होगी कि आपका पायथन संस्करण बहुत पुराना नहीं है या जो भी समस्या हो सकती है।
फिर सबसे 'हैकी' समाधान हैं। वे महान और छोटे हैं लेकिन कभी-कभी समझना, पढ़ना और याद रखना कठिन होता है।
हालांकि, एक विकल्प है जो पहिया को मजबूत करने की कोशिश करने के लिए है। - पहिया को फिर से क्यों लगाना? - आम तौर पर क्योंकि यह सीखने का एक बहुत अच्छा तरीका है (और कभी-कभी सिर्फ इसलिए कि पहले से मौजूद उपकरण वास्तव में वह नहीं करता है जो आप चाहते हैं और / या जिस तरह से आप इसे पसंद करेंगे) और सबसे आसान तरीका है यदि आप नहीं जानते हैं या नहीं अपनी समस्या के लिए सही उपकरण याद नहीं है।
इसलिए , मैं मॉड्यूल Counterसे वर्ग के पहिया को फिर से मजबूत करने का प्रस्ताव करता हूं collections(आंशिक रूप से कम से कम):
class MyDict(dict):
def __add__(self, oth):
r = self.copy()
try:
for key, val in oth.items():
if key in r:
r[key] += val # You can custom it here
else:
r[key] = val
except AttributeError: # In case oth isn't a dict
return NotImplemented # The convention when a case isn't handled
return r
a = MyDict({'a':1, 'b':2, 'c':3})
b = MyDict({'b':3, 'c':4, 'd':5})
print(a+b) # Output {'a':1, 'b': 5, 'c': 7, 'd': 5}
शायद इसे लागू करने का कोई और तरीका है और ऐसा करने के लिए पहले से ही उपकरण हैं लेकिन यह कल्पना करना हमेशा अच्छा होता है कि चीजें मूल रूप से कैसे काम करती हैं।
sum(counters)दुर्भाग्य से, काम नहीं करता है।