चलो कहते हैं कि मैं एक सूचीलूप के लिए एक अजगर में, वास्तविक प्रतिलिपि, प्रतिलिपि पर मैं कैसे काम करूं?
a = [1,2,3]
है मैं जगह में है कि सूची के हर आइटम को बढ़ाने के लिए चाहते हैं। मैं तो जब मुझे लगता है कि पाश a
अभी भी देता है [1,2 के साथ समाप्त कर रहा हूँ के रूप में वाक्य रचना आसान
for item in a:
item += 1
के रूप में लेकिन यह है कि उदाहरण के अजगर में सिर्फ item
का मूल्य, नहीं इसकी वास्तविक संदर्भ का उपयोग करता है कुछ करना चाहता हूँ, 3] [2,3,4] के बजाय। मैं जानता हूँ कि मैं की तरह
a = map(lambda x:x+1, a)
कुछ कर सकते हैं लेकिन वह वास्तव में मेरे वर्तमान कोड में फ़िट नहीं होता और मैं इसे फिर से लिखने के लिए नफरत करता हूँ: - \
लूप के लिए वास्तव में आपको वास्तविक वस्तु देता है, कॉपी नहीं। बात यह है कि आप संख्याओं का उपयोग कर रहे हैं। संख्या (और तार), सभी पाइथन मूल्यों के रूप में, वस्तुएं हैं, लेकिन प्रत्येक शाब्दिक एक अद्वितीय उदाहरण को संदर्भित करता है। तो यदि आप 1 से 2 का प्रतिनिधित्व करने वाले एक उदाहरण को संशोधित कर सकते हैं, तो आप सभी 1 से 2 में बदलना बंद कर देंगे जो चूसने वाला होगा। विकल्प, प्रत्येक मूल्य के लिए एक उदाहरण होने के लिए व्यवहार्य नहीं होगा। आईडी फ़ंक्शन के साथ खेलने का प्रयास करें: आईडी (1), आईडी ('हैलो वर्ल्ड'), आदि (यह हमेशा एक ही अक्षर के लिए एक ही पता देता है।) – Blixt