मेरे पास मुहावरों और पठनीयता के बारे में एक प्रश्न है, और इस विशेष मामले के लिए पायथन दर्शन का एक टकराव प्रतीत होता है:
मैं शब्दकोश बी से शब्दकोश बनाना चाहता हूं यदि बी में एक विशिष्ट कुंजी मौजूद नहीं है, तो कुछ भी न करें और जारी रखें।
कौन सा तरीका बेहतर है?
try:
A["blah"] = B["blah"]
except KeyError:
pass
या
if "blah" in B:
A["blah"] = B["blah"]
"करो और माफ़ी मांगो" बनाम "सादगी और खोजकर्ता"।
कौन सा बेहतर है और क्यों है?
A.update(B)
आपके लिए काम नहीं करता है ?
has_key
पक्ष में पदावनत किया गया है । in
B.keys()
.has_key
पदावनत है और keys
py2k में अनावश्यक सूची बनाता है, और py3k में निरर्थक है
A = dict((k, v) for (k, v) in B if we_want_to_include(k))
:।
if "blah" in B.keys()
, याif B.has_key("blah")
।