← Все вопросы
Чем list comprehension лучше обычного цикла с append?
4
Везде советуют писать [x*2 for x in nums] вместо цикла с append. Это правда быстрее или просто короче? И когда лучше НЕ использовать списочное включение?
2 ответа
5
✓ Принятый ответ — помог автору
И то, и другое. Comprehension обычно чуть быстрее, потому что добавление в список идёт на уровне интерпретатора, а не через отдельные вызовы append. Но главное — читаемость: одна строка вместо четырёх. НЕ стоит использовать, если внутри сложная логика с несколькими if/else или побочные эффекты — тогда обычный цикл понятнее.
Снежана Пономарёва Про генераторы — плюс, часто забывают. · 24 дня назад
2
Маленькое правило: если включение не помещается в одну спокойную строку — пиши цикл. Ещё момент: для огромных данных вместо [...] бери генератор (...), чтобы не держать весь список в памяти.
Ваш ответ
Войдите, чтобы ответить на вопрос.