كيف يمكن دمج قاموسين (Dictionaries) في تعبير واحد في بايثون؟
في لغة بايثون، تُستخدم القواميس (Dictionaries) لتخزين البيانات على شكل أزواج من مفتاح وقيمة (Key-Value). وفي بعض الحالات، قد تحتاج إلى دمج قاموسين معًا في تعبير واحد للحصول على قاموس جديد يحتوي على جميع البيانات. لحسن الحظ، توفّر بايثون عدة طرق سهلة وأنيقة لتحقيق ذلك.
في هذا المقال، سنتعرّف على أفضل الطرق لدمج قاموسين في تعبير واحد، مع توضيح مزايا كل طريقة.
الطريقة الأولى: باستخدام عامل الدمج |
(بدءًا من Python 3.9)
بدءًا من إصدار بايثون 3.9، أصبح بالإمكان استخدام عامل الدمج |
لدمج قاموسين معًا في تعبير واحد.
مثال:
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
merged_dict = dict1 | dict2
print(merged_dict)
الناتج:
{'a': 1, 'b': 3, 'c': 4}
ملاحظة: في حال تكرار نفس المفتاح في القاموسين، سيتم اعتماد القيمة من القاموس الثاني.
الطريقة الثانية: باستخدام دالة update()
(تعديل مباشر)
إذا كنت تريد دمج قاموسين مع تعديل القاموس الأصلي، يمكن استخدام دالة update()
.
مثال:
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
dict1.update(dict2)
print(dict1)
الناتج:
{'a': 1, 'b': 3, 'c': 4}
ملاحظة: هذه الطريقة تُعدّل القاموس الأول ولا تُنشئ قاموسًا جديدًا.
الطريقة الثالثة: باستخدام فك القواميس (** unpacking) (من Python 3.5 فما فوق)
طريقة أخرى أنيقة وسهلة باستخدام فك القواميس عبر **
داخل تعبير القاموس.
مثال:
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
merged_dict = {**dict1, **dict2}
print(merged_dict)
الناتج:
{'a': 1, 'b': 3, 'c': 4}
معلومة: يتم دمج المفاتيح المتكرّرة مع اعتماد القيمة من القاموس الأخير.
📊 مقارنة بين الطرق:
الطريقة | هل تُعدّل القاموس الأصلي؟ | الإصدار المطلوب | الميزة |
---|---|---|---|
` | ` | لا | Python 3.9+ |
update() | نعم | Python 2+ | سريعة عند الحاجة لتعديل القاموس |
** unpacking | لا | Python 3.5+ | مرنة وسهلة الاستخدام |
إذا كنت تستخدم بايثون 3.9 أو أحدث، يُفضَّل استخدام عامل الدمج |
لدمج القواميس في تعبير واحد بطريقة نظيفة وسريعة. أما إذا كنت تعمل مع إصدارات أقدم، فطريقة فك القواميس باستخدام **
تظل خيارًا ممتازًا.