হ্যাঁ, পাইথন ডিকশনারি মিউটেবল (Mutable)। ডিকশনারির রেফারেন্স পরিবর্তন করলে নতুন ডিকশনারি তৈরি হয় না, বরং একই অবজেক্ট ইন-প্লেস আপডেট হয়।
উদাহরণ
a = {'foo': 1, 'bar': 12}
b = a # b এবং a একই অবজেক্ট রেফার করে
b['foo'] = 20 # b-এর মাধ্যমে মডিফাই
print(a) # {'foo': 20, 'bar': 12}
print(b) # {'foo': 20, 'bar': 12}
আউটপুট
{'foo': 20, 'bar': 12}
{'foo': 20, 'bar': 12}
ব্যাখ্যা
b = aশুধু রেফারেন্স কপি করে, নতুন ডিকশনারি বানায় নাb['foo'] = 20একই অবজেক্ট মডিফাই করেaএবংbউভয়েই পরিবর্তন দেখায়
নতুন ডিকশনারি বানাতে (শ্যালো কপি)
b = a.copy() # বা dict(a)
b['foo'] = 99
print(a) # {'foo': 20, 'bar': 12} - অপরিবর্তিত
print(b) # {'foo': 99, 'bar': 12}
নোট: .copy() শ্যালো কপি করে। নেস্টেড ডিকশনারির জন্য copy.deepcopy() লাগবে।