Junior developer כותב for loop. Senior developer כותב comprehension. לא כי comprehension "מ멋있" - כי comprehension מאלץ אתכם לחשוב על הטרנספורמציה כ-expression אחד ברור, לא כ-sequence of mutations על state משותף. כשקוראים [user.email for user in users if user.is_active] מבינים מיד: "תן לי רשימת emails של users פעילים". כשרואים for loop בן 6 שורות עם append בסוף - צריך לקרוא הכל לפני שמבינים מה המטרה.
בפועל, comprehensions גם מהירות יותר מ-for loops עם append - Python מאפטמת אותן ברמת bytecode. לרוב ההבדל הוא 10-30%, אבל על מיליוני אלמנטים זה ניכר. יותר חשוב מהperformance - comprehension כופה discipline: אם הלוגיקה קשה מדי לכתוב בcomprehension, כנראה שהיא קשה מדי גם ב-for loop ולוגיקה שכזו צריכה להיות בפונקציה עצמאית.