تقنية

remove وdiscard في بايثون: ماذا يحدث إذا غاب عنصر المجموعة؟

حذف 7 الغائب يثير KeyError مع remove؛ discard تعيد None، وتبقى المجموعتان.
غياب العنصر.

remove تثير KeyError عند غياب عنصر المجموعة؛ discard لا تثيره لهذا الغياب. [1]

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

تختلفان عند الغياب، وتتفقان على حذف العنصر الموجود. [1]

  • remove تثير KeyError عند غياب عنصر المجموعة؛ discard لا تثيره لهذا الغياب. [1]
  • discard تحذف العنصر إذا كان موجودًا؛ غيابه لا يستلزم تغيير المجموعة. [1]
  • مثال مؤلف على CPython 3.12.14: a={4,9}؛ b={4,9}؛ العدد 7 غائب عنهما. [1]
  • a.remove(7) تثير KeyError؛ b.discard(7) تعيد None؛ كلتاهما تبقى {4,9}. [1]
  • ثم a.remove(4) وb.discard(4) تنجحان؛ تصبح كل مجموعة {9}. [1]

الغياب والخطأ

remove تثير KeyError عند غياب عنصر المجموعة؛ discard لا تثيره لهذا الغياب. [1]

حذف مشروط

discard تحذف العنصر إذا كان موجودًا؛ غيابه لا يستلزم تغيير المجموعة. [1]

عنصر غائب

مثال مؤلف على CPython 3.12.14: a={4,9}؛ b={4,9}؛ العدد 7 غائب عنهما. [1]

a.remove(7) -> KeyError [1]

حذف 4 الموجود يترك 9 وحده في كل مجموعة.
عنصر موجود.

نتيجة وتحكم

a.remove(7) تثير KeyError؛ b.discard(7) تعيد None؛ كلتاهما تبقى {4,9}. [1]

b.discard(7) -> None [1]

ثم a.remove(4) وb.discard(4) تنجحان؛ تصبح كل مجموعة {9}. [1]

المراجع

  1. Python — set remove/discard

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

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