जब आप ऑपरेटर aके बाईं ओर निर्दिष्ट =करते हैं, तो आप पायथन के सामान्य असाइनमेंट का उपयोग कर रहे हैं , जो aनए संदर्भ को इंगित करने के लिए वर्तमान संदर्भ में नाम बदलता है । यह पिछले मान को aइंगित नहीं करता है जो इंगित कर रहा था।
ऑपरेटर a[0:2]के बाईं ओर निर्दिष्ट करके =, आप पायथन को बता रहे हैं कि आप स्लाइस असाइनमेंट का उपयोग करना चाहते हैं । स्लाइस असाइनमेंट सूचियों के लिए एक विशेष वाक्यविन्यास है, जहां आप सूची से सामग्री सम्मिलित, हटा सकते हैं या प्रतिस्थापित कर सकते हैं:
प्रविष्टि :
>>> a = [1, 2, 3]
>>> a[0:0] = [-3, -2, -1, 0]
>>> a
[-3, -2, -1, 0, 1, 2, 3]
विलोपन :
>>> a
[-3, -2, -1, 0, 1, 2, 3]
>>> a[2:4] = []
>>> a
[-3, -2, 1, 2, 3]
प्रतिस्थापन :
>>> a
[-3, -2, 1, 2, 3]
>>> a[:] = [1, 2, 3]
>>> a
[1, 2, 3]
ध्यान दें:
स्लाइस की लंबाई निर्धारित अनुक्रम की लंबाई से भिन्न हो सकती है, इस प्रकार लक्ष्य अनुक्रम की लंबाई को बदल सकता है, यदि लक्ष्य अनुक्रम इसकी अनुमति देता है। - स्रोत
स्लाइस असाइनमेंट, टपल अनपैकिंग के समान कार्य प्रदान करता है । उदाहरण के लिए, a[0:1] = [4, 5]इसके बराबर है:
# Tuple Unpacking
a[0], a[1] = [4, 5]
टपल अनपैकिंग के साथ, आप गैर-अनुक्रमिक सूचियों को संशोधित कर सकते हैं:
>>> a
[4, 5, 3]
>>> a[-1], a[0] = [7, 3]
>>> a
[3, 5, 7]
हालाँकि, टपल अनपैकिंग प्रतिस्थापन तक सीमित है, क्योंकि आप तत्वों को सम्मिलित या हटा नहीं सकते हैं।
इन सभी ऑपरेशनों से पहले और बाद में, aएक ही सटीक सूची है। पायथन बस एक सूची में जगह संशोधित करने के लिए अच्छा वाक्यविन्यास चीनी प्रदान करता है।