← Все вопросы

Чем list comprehension лучше обычного цикла с append?

Задан 25 дней назад1 просмотров2 ответа
4

Везде советуют писать [x*2 for x in nums] вместо цикла с append. Это правда быстрее или просто короче? И когда лучше НЕ использовать списочное включение?

2 ответа

5
✓ Принятый ответ — помог автору

И то, и другое. Comprehension обычно чуть быстрее, потому что добавление в список идёт на уровне интерпретатора, а не через отдельные вызовы append. Но главное — читаемость: одна строка вместо четырёх. НЕ стоит использовать, если внутри сложная логика с несколькими if/else или побочные эффекты — тогда обычный цикл понятнее.

Снежана Пономарёва Про генераторы — плюс, часто забывают. · 24 дня назад
2

Маленькое правило: если включение не помещается в одну спокойную строку — пиши цикл. Ещё момент: для огромных данных вместо [...] бери генератор (...), чтобы не держать весь список в памяти.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект