इस सवाल का जवाब देने के लिए कि " मैं कैसे पता लगा सकता हूं कि उस दिए गए इंडेक्स में कोई गैर-कोई मूल्य पहले से ही निर्धारित किया गया है ", मैं इसे पसंद करूंगा:
try:
nonNone = my_dict[key] is not None
except KeyError:
nonNone = False
यह ईएएफपी (पहले से माफी मांगने की अनुमति के लिए आसान) की पहले से लागू अवधारणा के अनुरूप है। यह शब्दकोश में डुप्लिकेट कुंजी लुकअप से भी बचता है क्योंकि key in my_dict and my_dict[key] is not Noneयदि लुकअप महंगा है तो यह दिलचस्प है।
वास्तविक समस्या के लिए जिसे आपने पेश किया है, अर्थात यदि यह मौजूद है, तो एक इंट्री बढ़ाना, या इसे डिफ़ॉल्ट मान पर सेट करना अन्यथा, मैं भी इसकी सिफारिश करता हूं
my_dict[key] = my_dict.get(key, default) + 1
एंड्रयू विल्किंसन के जवाब में।
यदि आप अपने शब्दकोश में संशोधित करने योग्य वस्तुओं का भंडारण कर रहे हैं तो एक तीसरा समाधान है। इसके लिए एक सामान्य उदाहरण एक मल्टीमैप है , जहां आप अपनी कुंजी के लिए तत्वों की एक सूची संग्रहीत करते हैं। उस स्थिति में, आप उपयोग कर सकते हैं:
my_dict.setdefault(key, []).append(item)
यदि कुंजी का मान डिक्शनरी में मौजूद नहीं है, तो सेटडफॉल्ट विधि इसे सेटडेफॉल्ट के दूसरे पैरामीटर पर सेट करेगी। यह एक मानक my_dict [कुंजी] की तरह व्यवहार करता है, कुंजी के लिए मान लौटाता है (जो नया सेट मान हो सकता है)।