हर अजगर कंटेनर सी के लिए, उम्मीद है कि
for item in C:
assert item in C
ठीक पारित करेंगे है दूसरे से (उपस्थिति की जांच) का अर्थ है? मुझे यकीन है कि! यह स्वाभाविक रूप से, सूचियों, सेट, tuples के लिए उस तरह से काम करता है ...
तो, जब C
एक शब्दकोश है, in
एक for
पाश में कुंजी/मान tuples उपज के लिए है, तो, कम से कम विस्मय के सिद्धांत के द्वारा थे, in
को रोकथाम की जांच में बाएं हाथ के ऑपरेंड के रूप में भी ऐसा ट्यूपल लेना होगा।
यह कितना उपयोगी होगा? सुंदर वास्तव में बेकार, मूल रूप से if (key, value) in C
if C.get(key) == value
के लिए एक पर्याय बनाने - जो एक जांच मेरा मानना है कि मैं प्रदर्शन किया है सकते हैं, या प्रदर्शन करने के लिए चाहता था है, 100 गुना अधिक शायद ही कभी क्या if k in C
वास्तव में मतलब है, कुंजी केवल की उपस्थिति की जाँच से और पूरी तरह से मूल्य को अनदेखा कर रहा है।
दूसरी ओर, बस कुंजियां पर पाश के लिए इच्छुक काफी आम है, उदाहरण के लिए:
for k in thedict:
thedict[k] += 1
मूल्य होने के रूप में अच्छी तरह से विशेष रूप से मदद नहीं होगा:
for k, v in thedict.items():
thedict[k] = v + 1
वास्तव में कुछ हद तक कम स्पष्ट और कम संक्षिप्त (ध्यान दें कि items
कुंजी/मूल्य जोड़े प्राप्त करने के लिए उपयोग करने के लिए "उचित" विधियों की मूल वर्तनी थी: दुर्भाग्यवश वह दिनों में वापस आ गया था जब ऐसे एक्सेसर्स ने पूरी सूचियां वापस कर दीं, इसलिए वैकल्पिक वर्तनी को "बस पुनरावृत्त" करने के लिए पेश किया गया, और iteritems
यह था - पायथन 3 में, जहां पिछले पायथन संस्करणों के साथ पिछड़ा संगतता बाधा बहुत कमजोर थी, यह items
फिर से बन गई)।
+1 अच्छा सवाल। आइए देखते हैं कि एलेक्स को – NullUserException