טיפ פייתון: בואו נבדוק שכל המחרוזות במערך אינן ריקות
הפונקציה all
בפייתון לוקחת רשימה ומחזירה True אם כל התאים ברשימה הם הערך True. ברגע הראשון שקוראים עליה היא אולי נשמעת קצת חסרת תועלת, הרי רוב הרשימות שאני ארצה לבדוק עליהן דברים לא יהיו רשימות של בוליאנים, והדבר שארצה לבדוק בדרך כלל לא יהיה סתם שכל התאים ברשימה הם True.
ניקח לדוגמה את הרשימות:
l1 = ["one", "two", ""]
l2 = ["one", "", "three"]
l3 = ["one", "two", "three"]
עכשיו נשאל - באיזה רשימה כל התאים הם באורך 1 לפחות?
הפונקציה all
נותנת דרך מאוד קלה לפתור את הבעיה, בתנאי שאנחנו יודעים לשלב אותה עם הרכבת רשימות: בשלב ראשון נהפוך את כל התאים ברשימה לערך בוליאני שאומר האם התא מתאים לתנאי או לא, ובשלב שני נפעיל את all שתבדוק שכל התאים ברשימה הם True. הקוד יהיה:
def check_list(l: [str]):
return all((len(i) > 0 for i in l))
שווה לשים לב:
השימוש בסוגריים עגולים ולא במרובעים אומר שפייתון יבנה Generator ולא רשימה מלאה. בצורה כזאת
all
יכולה לעצור ב False הראשון במקום לחשב מראש את ערך התנאי על כל התאים ברשימה.אפשר ורצוי לקרוא עוד על
all
ועל החברה שלהany
בדף התיעוד על פונקציות מובנות בפייתון.