मैं एक सूची को संशोधित करने की कोशिश कर रहा हूँ और मेरी संशोधनों के बाद से थोड़ी सूझबूझ से काम मेरी सूची में बड़ी हो रही है और कर रहे थे मुझे लगता है मैं इस सोच किया निम्नलिखित कोडयदि स्लाइसिंग किसी सूची की एक प्रति नहीं बनाता है और न ही सूची करता है() मैं अपनी सूची की वास्तविक प्रति कैसे प्राप्त कर सकता हूं?
tempList=origList[0:10]
for item in tempList:
item[-1].insert(0 , item[1])
del item[1]
का उपयोग कर अपनी सूची का एक टुकड़ा ले लिया है कि करने के लिए सभी संशोधन सूची tempList ऑब्जेक्ट को प्रभावित करेगी और मूल वस्तु नहीं होगी।
ठीक है जब मुझे अपना कोड सही हो गया और इसे मेरी मूल सूची में चलाया गया तो पहले दस आइटम (अनुक्रमित 0-9) ऊपर दिए गए कोड का परीक्षण करने में मेरे हेरफेर से प्रभावित हुए थे।
तो मैंने इसे गुगल किया और मुझे संदर्भ मिलते हैं जो कहते हैं कि एक टुकड़ा सूची को कॉपी करता है और एक नया बनाता है। मुझे कोड भी मिला जिसने मुझे वस्तुओं की आईडी खोजने में मदद की, इसलिए मैंने अपनी उत्पत्ति को खरोंच से बनाया, पहले दस वस्तुओं की आईडी प्राप्त की। मैंने सूची को फिर से काट दिया और पाया कि स्लाइस से आईडी ने मूल के पहले दस आइटमों से आईडी को मेल किया था।
मैं और अधिक नोटों कि एक सूची की प्रतिलिपि करने के लिए एक और अधिक pythonic तरीका सुझाव का उपयोग करने के
tempList=list(origList([0:10])
मुझे लगता है कि कोशिश की और मैं अब भी लगता है कि से आईडी tempList origList ID से मेल खानी होगी पाया।
कृपया बेहतर तरीके कोडिंग-मैं कैसे अपने दम पर एक सूची समझ में यह करने के लिए के बाद मुझे समझ में क्या कैसे नकल काम करता है
काई के जवाब सही के आधार पर यह पता लगाने जा रहा हूँ करने के लिए सुझाव नहीं देते विधि है:
import copy
tempList=copy.deepcopy(origList[0:10])
id(origList[0])
>>>>42980096
id(tempList[0])
>>>>42714136
वर्क्स एक आकर्षण
बहुत उपयोगी-गूगल तुरंत गहरी बनाम उथले के साथ आया था। धन्यवाद। – PyNEwbie