Конспект і таймкоди
0:00
Фільтрація failed status codes
Вираз [code for code in status_codes if code >= 400] проходить по input list і залишає лише значення, що відповідають умові. Результат — новий list; вихідна колекція не змінюється. Межу >= 400 треба читати точно, бо > 400 випадково відкине code 400.
1:30
Transform і вибір потрібного поля
Comprehension може не лише фільтрувати, а й перетворювати кожен element: наприклад, витягнути emails або IDs із list of dictionaries. Вираз ліворуч описує значення результату, for — джерело, а optional if — фільтр.
{user["id"]: user for user in users} будує index, де ID стає key, а весь user — value. Після цього конкретний об’єкт читається напряму, без повторного проходу по list. Якщо IDs дублюються, пізніше значення перезапише попереднє — це слід перевіряти, якщо унікальність не гарантована контрактом.
4:00
Нормалізація та set comprehension
{email.lower() for email in emails} одночасно переводить email у lower case й прибирає дублікати. Це корисно для даних із CSV або UI, де регістр може відрізнятися. Якщо важливий порядок або треба зберегти дублікати, слід обрати list comprehension замість set.