পাইথনে অ্যাসাইনমেন্ট অপারেটর নতুন অবজেক্ট তৈরি করে না, বরং ইতিমধ্যে বিদ্যমান অবজেক্টের অন্য একটি নাম দেয়। এটাকে id() ফাংশন দিয়ে যাচাই করা যায়।
>>> L1 = [1,2,3,4] >>> L2 = L1 >>> id(L1) 185117137928 >>> id(L2) 185117137928
আসল কপি করতে নিচের মেথডগুলো ব্যবহার করা যায়।
স্লাইস অপারেটর: স্লাইস অপারেটরের দুটি অপারেন্ড হলো স্লাইস শুরু এবং শেষের ইনডেক্স। একসপ্রেসলি না দিলে দুটোই ডিফল্ট হয় সিকোয়েন্সের শুরু ও শেষ। আমরা এই ফিচার ব্যবহার করতে পারি।
>>> L1 = [1,2,3,4] >>> L2 = L1[:] >>> L1 [1, 2, 3, 4] >>> L2 [1, 2, 3, 4] >>> id(L1) 185117025160 >>> id(L2) 185117171592
বিল্ট-ইন list() মেথড:
>>> L1 = [1,2,3,4] >>> L2 = list(L1) >>> L1 [1, 2, 3, 4] >>> L2 [1, 2, 3, 4] >>> id(L1) 185117295816 >>> id(L2) 185117209352
পাইথনের স্ট্যান্ডার্ড লাইব্রেরির copy মডিউলে অবজেক্টের শ্যালো এবং ডিপ কপির ফাংশন আছে। ডিপ কপি নেস্টেড কপি, শ্যালো কপিতে ইনার লিস্ট রেফারেন্স দিয়ে কপি হয়।
>>> import copy >>> L1 = [1,2,3,4] >>> L2 = copy.copy(L1) >>> L1 [1, 2, 3, 4] >>> L2 [1, 2, 3, 4] >>> id(L1) 185117025160 >>> id(L2) 185117295880 >>> L3 = copy.deepcopy(L1) >>> L3 [1, 2, 3, 4] >>> id(L3) 185117304328