تقنية

دمج القواميس في بايثون: هل | و|= يغيّران الأصل؟

الدمج ينشئ m ويترك d؛ التحديث يغيّر d.
أثر العمليتين.

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

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

الأول يترك الأصل؛ الثاني يغيّره في المثال. [1]

  • | ينشئ قاموسًا جديدًا؛ |= يحدّث القاموس الأيسر. [1]
  • إذا اشترك القاموسان في مفتاح، تكون الأولوية لقيمة الطرف الأيمن. [1]
  • مثال مؤلف على CPython 3.12.14: d={"r":4}؛ e={"r":9,"b":6}؛ alias=d. [1]
  • m=d|e يعطي {"r":9,"b":6}؛ تبقى d بقيمة r:4. [1]
  • ثم d|=e يغيّر d إلى {"r":9,"b":6}؛ alias يشير إلى الكائن نفسه؛ e لم تتغير. [1]

إنشاء وتحديث

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

أولوية اليمين

إذا اشترك القاموسان في مفتاح، تكون الأولوية لقيمة الطرف الأيمن. [1]

قاموس جديد

مثال مؤلف على CPython 3.12.14: d={"r":4}؛ e={"r":9,"b":6}؛ alias=d. [1]

m=d|e [1]

بعد التحديث، alias هو d نفسه؛ m قاموس مختلف.
هوية القاموس.

أثر العمليتين

m=d|e يعطي {"r":9,"b":6}؛ تبقى d بقيمة r:4. [1]

d|=e [1]

ثم d|=e يغيّر d إلى {"r":9,"b":6}؛ alias يشير إلى الكائن نفسه؛ e لم تتغير. [1]

المراجع

  1. Python — dictionary union

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

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