تقنية

itertools.compress في بايثون: هل يجب أن تكون selectors من bool؟

0 والنص الفارغ كاذبان؛ 2 والقائمة [0] صادقان.
اختبار الحقيقة.

compress تختبر حقيقة المحدد المقابل للعنصر؛ لا تشترط النوع bool. [1][2]

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

لا؛ نستخدم أعدادًا ونصًا وقائمة كمحددات في المثال. [1][2]

  • compress تختبر حقيقة المحدد المقابل للعنصر؛ لا تشترط النوع bool. [1][2]
  • 0 والنص الفارغ "" كاذبان؛ 2 والقائمة [0] صادقان؛ [0] غير فارغة. [1][2]
  • على CPython 3.12.14، data=["bud","leaf","seed","stone"] وselectors=[0,2,"",[0]]؛ أربعة عناصر لكل منهما. [1][2]
  • الناتج ["leaf","stone"]؛ اخترنا العنصرين المقابلين للمحددين الصادقين. [1][2]
  • تحكم: bool على المحددات تعطي [False,True,False,True]؛ الاختيار نفسه، والمدخلان لم يتغيرا. [1][2]

اختبار الحقيقة

compress تختبر حقيقة المحدد المقابل للعنصر؛ لا تشترط النوع bool. [1][2]

قيم محدداتنا

0 والنص الفارغ "" كاذبان؛ 2 والقائمة [0] صادقان؛ [0] غير فارغة. [1][2]

المقابلة والاختيار

على CPython 3.12.14، data=["bud","leaf","seed","stone"] وselectors=[0,2,"",[0]]؛ أربعة عناصر لكل منهما. [1][2]

from itertools import compress data=["bud","leaf","seed","stone"] selectors=[0,2,"",[0]] print(list(compress(data,selectors))) [1][2]

compress تختار leaf وstone.
المختار.

الناتج والتحكم

الناتج ["leaf","stone"]؛ اخترنا العنصرين المقابلين للمحددين الصادقين. [1][2]

normalized=[bool(value) for value in selectors] print(normalized,list(compress(data,normalized))) [1][2]

تحكم: bool على المحددات تعطي [False,True,False,True]؛ الاختيار نفسه، والمدخلان لم يتغيرا. [1][2]

المراجع

  1. Python compress
  2. Python truth values

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

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