تقنية

difference_update في بايثون: هل تعيد مجموعة جديدة؟

difference تعيد 4 في مجموعة جديدة؛ الأصل يبقى 4 و9.
نتيجة جديدة.

difference تعيد مجموعة جديدة؛ difference_update تغير الأصل وتعيد None. [1]

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

لا؛ افصل المجموعة المعدلة عن قيمة الإرجاع. [1]

  • difference تعيد مجموعة جديدة؛ difference_update تغير الأصل وتعيد None. [1]
  • الفرق يحتفظ بعناصر اليسار الغائبة عن اليمين؛ التعديل يحذف العناصر المشتركة من الأصل. [1]
  • مثال مؤلف على CPython 3.12.14: a={4,9}؛ b={9,12}؛ r=a.difference(b) يجعل r={4} وa تبقى {4,9}. [1]
  • ثم alias=a؛ a.difference_update(b) تعيد None؛ تصبح a={4}، وalias يشير للمجموعة نفسها. [1]
  • b تبقى {9,12}؛ 12 لا يضاف إلى الناتج. r مجموعة مستقلة عن a. [1]

نتيجة وتعديل

difference تعيد مجموعة جديدة؛ difference_update تغير الأصل وتعيد None. [1]

اتجاه الفرق

الفرق يحتفظ بعناصر اليسار الغائبة عن اليمين؛ التعديل يحذف العناصر المشتركة من الأصل. [1]

مجموعة جديدة

مثال مؤلف على CPython 3.12.14: a={4,9}؛ b={9,12}؛ r=a.difference(b) يجعل r={4} وa تبقى {4,9}. [1]

a.difference(b) -> {4} [1]

بعد التعديل، الإرجاع None وa تحتوي 4؛ alias يشير إليها.
أصل معدل.

الأصل والإرجاع

ثم alias=a؛ a.difference_update(b) تعيد None؛ تصبح a={4}، وalias يشير للمجموعة نفسها. [1]

a.difference_update(b) -> None [1]

b تبقى {9,12}؛ 12 لا يضاف إلى الناتج. r مجموعة مستقلة عن a. [1]

المراجع

  1. Python — set difference

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

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