এর জন্য ডকুমেন্টেশন পড়ার সময় dict.copy()
, এটি বলে যে এটি অভিধানের অগভীর অনুলিপি তৈরি করে। আমি অনুসরণ করছি বইটির জন্য একই (বেজলির পাইথন রেফারেন্স), যা বলে:
M.copy () পদ্ধতিটি ম্যাপিং অবজেক্টে থাকা আইটেমগুলির অগভীর অনুলিপি তৈরি করে একটি নতুন ম্যাপিং অবজেক্টে রাখে।
এই বিবেচনা:
>>> original = dict(a=1, b=2)
>>> new = original.copy()
>>> new.update({'c': 3})
>>> original
{'a': 1, 'b': 2}
>>> new
{'a': 1, 'c': 3, 'b': 2}
সুতরাং আমি ধরে original
নিয়েছি যে এটি অগভীর অনুলিপিটি করার পরেও (এবং 'সি': 3 যোগ করে) এর মান আপডেট করবে । আপনি যদি এটি তালিকার জন্য করেন তবে পছন্দ করুন:
>>> original = [1, 2, 3]
>>> new = original
>>> new.append(4)
>>> new, original
([1, 2, 3, 4], [1, 2, 3, 4])
এটি প্রত্যাশার মতো কাজ করে।
যেহেতু উভয়ই অগভীর অনুলিপি, কেন এটি dict.copy()
আমার প্রত্যাশা মতো কাজ করে না? অথবা অগভীর বনাম গভীর অনুলিপি সম্পর্কে আমার বোঝা ত্রুটিযুক্ত?