فهم النسخ الضحل في قواميس Python: لماذا لا تؤثر التحديثات في النسخ على الأصل تنشئ نسخة ضحلة قاموسًا جديدًا يحتوي على إشارات إلى نفس الكائنات مثل القاموس الأصلي ، في حين أن نسخة عميقة تنشئ قاموسًا جديدًا مع نسخ من الكائنات.
هذا يعني أن القاموس الجديد سيحتوي على إشارات إلى نفس الكائنات المخزنة في القاموس الأصلي. نتيجة لذلك ، ستنعكس أي تغييرات تم إجراؤها على النسخة في القاموس الأصلي.
مثال: جديد = Original.copy () new.update ({'c': 3}) print (أصلي) # {'a': 1 ، 'b': 2} print (جديد) # {'a': 1 ، 'c': 3 ، 'b': 2}
في هذا المثال ، تقوم طريقة dict.copy () بإنشاء قاموس جديد ، جديد ، يحتوي على إشارات إلى نفس الكائنات مثل القاموس الأصلي. عندما نقوم بتحديث النسخة باستخدام {'c': 3} ، فإن النسخة الأصلية والنسخة تعكس هذا التغيير. عندما نقوم بتحديث النسخة ، فإننا لا نغير الكائنات الفعلية ، ولكن فقط المراجع. عندما نقوم بتحديث نسخة القائمة ، نقوم بتحديث العناصر الموجودة في القائمة ، والتي تؤثر على كل من النسخة والأصل.
هذه الوظيفة تقوم بنسخ جميع الكائنات في القاموس بشكل متكرر ، وإنشاء بنية جديدة مع مراجع مميزة.
مثال:original = {'a': 1, 'b': 2} new = original.copy() new.update({'c': 3}) print(original) # {'a': 1, 'b': 2} print(new) # {'a': 1, 'c': 3, 'b': 2}
في هذا المثال ، تقوم وظيفة copy.deepcopy () بإنشاء قاموس جديد ، جديد ، يحتوي على نسخ من الكائنات في القاموس الأصلي. عندما نقوم بتحديث النسخة ، يظل القاموس الأصلي غير متأثر.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3