تقنية

items في بايثون: هل تصلح كل أزواجها لبناء set؟

وجود الزوج يعطي True؛ بناء set يثير TypeError.
وجود وهاش.

items تعرض أزواج المفتاح والقيمة؛ وجود زوج فيها لا يضمن قبوله في set. [1]

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

لا؛ قيمة قائمة تمنع بناء المجموعة في المثال. [1]

  • items تعرض أزواج المفتاح والقيمة؛ وجود زوج فيها لا يضمن قبوله في set. [1]
  • عناصر set يجب أن تكون قابلة للهاش؛ القائمة تعطل ذلك هنا. [1]
  • مثال مؤلف على CPython 3.12.14: d={"r":[5,8]}؛ v=d.items()؛ p=("r",[5,8]). [1]
  • p in v تعطي True؛ set(v) تثير TypeError، رغم تطابق القيمة. [1]
  • تحكم: e={"r":(5,8)}؛ set(e.items()) تنجح بعنصر واحد؛ القاموسان لم يتغيرا. [1]

وجود الزوج

items تعرض أزواج المفتاح والقيمة؛ وجود زوج فيها لا يضمن قبوله في set. [1]

شرط المجموعة

عناصر set يجب أن تكون قابلة للهاش؛ القائمة تعطل ذلك هنا. [1]

قيمة قائمة

مثال مؤلف على CPython 3.12.14: d={"r":[5,8]}؛ v=d.items()؛ p=("r",[5,8]). [1]

p in v -> True [1]

قيمة القائمة تمنع set؛ قيمة tuple المحددة تسمح بعنصر واحد.
تحكم بقيمة tuple.

وجود وهاش

p in v تعطي True؛ set(v) تثير TypeError، رغم تطابق القيمة. [1]

set(v) -> TypeError [1]

تحكم: e={"r":(5,8)}؛ set(e.items()) تنجح بعنصر واحد؛ القاموسان لم يتغيرا. [1]

المراجع

  1. Python — dict.items

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

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