تقنية

دمج القواميس في بايثون: لماذا تنجح |= مع قائمة أزواج؟

دمج قاموس وقائمة أزواج مباشرة يرفع TypeError.
قائمة مرفوضة.

قائمة الأزواج تصلح للتحديث هنا، وتُرفض مع الدمج المباشر. [1]

الخلاصة السريعة

| يشترط قاموسين؛ |= تقبل أيضًا أزواج مفتاح وقيمة. [1]

  • قائمة الأزواج تصلح للتحديث هنا، وتُرفض مع الدمج المباشر. [1]
  • | ينشئ قاموسًا جديدًا؛ |= تحدّث القاموس الأيسر. أضيف المعاملان في بايثون 3.9. [1]
  • مثال مؤلف على CPython 3.12.14: d={"red":1}؛ pairs=[("blue",2)]؛ نتعامل مع dict وقائمة عاديين. [1]
  • d|pairs ترفع TypeError وتترك d كما كانت؛ d|=pairs تجعلها {"red":1,"blue":2}. [1]
  • تحكم مستقل: من d={"red":1} جديدة، d|dict(pairs) تعطي {"red":1,"blue":2} في كائن جديد؛ تبقى d وpairs كما كانتا. [1]

نوع الطرف الأيمن

قائمة الأزواج تصلح للتحديث هنا، وتُرفض مع الدمج المباشر. [1]

إنشاء وتحديث

| ينشئ قاموسًا جديدًا؛ |= تحدّث القاموس الأيسر. أضيف المعاملان في بايثون 3.9. [1]

قائمة من زوج واحد

مثال مؤلف على CPython 3.12.14: d={"red":1}؛ pairs=[("blue",2)]؛ نتعامل مع dict وقائمة عاديين. [1]

d|pairs -> TypeError [1]

التحديث بقائمة الأزواج يضيف blue وقيمته 2.
تحديث مقبول.

نتيجة وتحكم

d|pairs ترفع TypeError وتترك d كما كانت؛ d|=pairs تجعلها {"red":1,"blue":2}. [1]

d|=pairs -> {"red":1,"blue":2} [1]

تحكم مستقل: من d={"red":1} جديدة، d|dict(pairs) تعطي {"red":1,"blue":2} في كائن جديد؛ تبقى d وpairs كما كانتا. [1]

المراجع

  1. Python — dictionary merge

للتوسع: لغات البرمجة.

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.