تقنية

عضوية set في بايثون: هل نجاح البحث يجعل الوسيط قابلًا للهاش؟

عضوية a تنجح بالمكافئة؛ hash(a) تثير TypeError.
بحث وهاش.

نجاح العضوية لا يجعل set قابلة للهاش. [1]

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

لا؛ بحث خاص عن frozenset مكافئة. [1]

  • نجاح العضوية لا يجعل set قابلة للهاش. [1]
  • تنشأ frozenset مؤقتة من وسيط set في العضوية وremove وdiscard للبحث عن مكافئتها. [1]
  • مثال مؤلف على CPython 3.12.14: a={4,9}؛ f=frozenset(a)؛ outer={f}؛ a in outer تعطي True. [1]
  • العنصر المخزن هو f؛ hash(a) تثير TypeError؛ نجاح العضوية لا يضيف a إلى المجموعة. [1]
  • تحكم: outer.remove(a) تعيد None وتحذف f؛ تصبح outer فارغة؛ a لم تتغير. [1]

بحث وهاش

نجاح العضوية لا يجعل set قابلة للهاش. [1]

المعالجة الخاصة

تنشأ frozenset مؤقتة من وسيط set في العضوية وremove وdiscard للبحث عن مكافئتها. [1]

عنصر جامد

مثال مؤلف على CPython 3.12.14: a={4,9}؛ f=frozenset(a)؛ outer={f}؛ a in outer تعطي True. [1]

a in outer -> True [1]

remove تستقبل a وتحذف f؛ outer فارغة وa بقيت 4 و9.
حذف بالمكافئة.

الوسيط والحذف

العنصر المخزن هو f؛ hash(a) تثير TypeError؛ نجاح العضوية لا يضيف a إلى المجموعة. [1]

hash(a) -> TypeError [1]

تحكم: outer.remove(a) تعيد None وتحذف f؛ تصبح outer فارغة؛ a لم تتغير. [1]

المراجع

  1. Python — set probe

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

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