পাইথনে অ্যাসাইনমেন্ট স্টেটমেন্টগুলি বস্তুগুলি অনুলিপি করে না, তারা একটি লক্ষ্য এবং একটি অবজেক্টের মধ্যে বাইন্ডিং তৈরি করে।
সুতরাং, dict2 = dict1
এটি ফলাফল dict2
এবং অবজেক্টের মধ্যে আরেকটি বাঁধার ফলাফল দেয় dict1
।
আপনি যদি ডিকটি অনুলিপি করতে চান তবে আপনি এটি ব্যবহার করতে পারেন copy module
। অনুলিপি মডিউলটির দুটি ইন্টারফেস রয়েছে:
copy.copy(x)
Return a shallow copy of x.
copy.deepcopy(x)
Return a deep copy of x.
অগভীর এবং গভীর অনুলিপিটির মধ্যে পার্থক্য কেবল যৌগিক অবজেক্টের জন্যই প্রাসঙ্গিক (যে বস্তুগুলিতে অন্যান্য বস্তু যেমন তালিকা বা শ্রেণীর উদাহরণ রয়েছে):
একটি অগভীর অনুলিপি একটি নতুন যৌগিক বস্তু তৈরি করে এবং তারপরে (সম্ভাব্য পরিমাণে) মূলটিতে পাওয়া বস্তুগুলির মধ্যে রেফারেন্স সন্নিবেশ করায়।
একটি গভীর অনুলিপি একটি নতুন যৌগিক বস্তু তৈরি করে এবং তারপরে, পুনরাবৃত্তভাবে, মূলটিতে পাওয়া সামগ্রীর মধ্যে অনুলিপি সন্নিবেশ করায়।
উদাহরণস্বরূপ, পাইথনে ২.7.৯:
>>> import copy
>>> a = [1,2,3,4,['a', 'b']]
>>> b = a
>>> c = copy.copy(a)
>>> d = copy.deepcopy(a)
>>> a.append(5)
>>> a[4].append('c')
এবং ফলাফল:
>>> a
[1, 2, 3, 4, ['a', 'b', 'c'], 5]
>>> b
[1, 2, 3, 4, ['a', 'b', 'c'], 5]
>>> c
[1, 2, 3, 4, ['a', 'b', 'c']]
>>> d
[1, 2, 3, 4, ['a', 'b']]
dict1
এবংdict2
নির্দেশ করতে পারেন ।