تقنية

frozenset في بايثون: لماذا تصلح مفتاحًا وset لا تصلح؟

a لا تصلح مفتاحًا؛ بناء القاموس يثير TypeError.
مفتاح مرفوض.

frozenset تصلح مفتاحًا للقاموس؛ set القابلة للتعديل لا تصلح. [1]

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

لأن frozenset غير قابلة للتعديل وقابلة للهاش؛ set لا قيمة هاش لها. [1]

  • frozenset تصلح مفتاحًا للقاموس؛ set القابلة للتعديل لا تصلح. [1]
  • المجموعات تتساوى باحتواء العناصر نفسها؛ المفاتيح المتساوية تفهرس المدخل نفسه. [1]
  • مثال مؤلف على CPython 3.12.14: a={4,9}؛ محاولة {a:7} تثير TypeError. [1]
  • تحكم: f=frozenset(a)؛ d={f:7} تنجح؛ d[f] تعيد 7. [1]
  • g=frozenset({9,4})؛ g == f تعطي True؛ d[g] تعيد 7 أيضًا؛ a لم تتغير. [1]

صلاحية المفتاح

frozenset تصلح مفتاحًا للقاموس؛ set القابلة للتعديل لا تصلح. [1]

مساواة المجموعات

المجموعات تتساوى باحتواء العناصر نفسها؛ المفاتيح المتساوية تفهرس المدخل نفسه. [1]

مجموعة قابلة للتعديل

مثال مؤلف على CPython 3.12.14: a={4,9}؛ محاولة {a:7} تثير TypeError. [1]

{a:7} -> TypeError [1]

f وg مجموعتان جامدتان متساويتان؛ d[g] تعيد 7.
مفتاح متساو.

مفتاح جامد

تحكم: f=frozenset(a)؛ d={f:7} تنجح؛ d[f] تعيد 7. [1]

d[g] -> 7 [1]

g=frozenset({9,4})؛ g == f تعطي True؛ d[g] تعيد 7 أيضًا؛ a لم تتغير. [1]

المراجع

  1. Python — frozenset

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

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