मैं अजगर के क्षेत्र में नये हूँ लेकिन मैं समझता हूँ कि चीजों को इस तरह से नहीं किया जाना चाहिए, तो विशुद्ध रूप से शैक्षिक :-) के रूप में निम्नलिखित कोड के टुकड़े पर विचार करेंसूची संशोधन
मैं वर्तमान में कर रहा हूँ पढ़ने 'लर्निंग अजगर' और पूरी तरह से निम्न उदाहरण समझने की कोशिश कर:
>>> L = [1, 2, 3, 4, 5]
>>> for x in L:
... x += 1
...
>>> L
[1, 2, 3, 4, 5]
मैं समझ में नहीं आया, तो इस व्यवहार कुछ हद तक सांख्यिक प्रकार की अचल से संबंधित था, इसलिए मैं निम्नलिखित परीक्षण किया है:
>>> L = [[1], [2], [3], [4], [5]]
>>> for x in L:
... x += ['_']
...
>>> L
[[1, '_'], [2, '_'], [3, '_'], [4, '_'], [5, '_']]
प्रश्न: सूची को पहले कोड में अपरिवर्तित करता है और दूसरे में बदल जाता है?
मेरे अंतर्ज्ञान है कि वाक्य रचना भ्रामक है और वह यह है कि:
- एक पूर्णांक के लिए
x += 1
वास्तव मेंx = x + 1
का मतलब है एक सूची के लिए x += ['_']
(इस प्रकार एक नया संदर्भ बताए) वास्तव मेंx.extend('_')
(इस प्रकार बदल रहा है इसका मतलब है जगह में सूची)
आपकी अंतर्ज्ञान सही है –
और पूर्णता के लिए, ऐसा करने के लिए "सही" तरीका 'x में x के लिए x = 1] – Kimvais
@ किमवाइस: मानता है कि आप एक नई सूची बनाना चाहते हैं। – MattH