Преимущества:
- более короткий и более декларативный код;
- меньше временных переменных;
- обычно немного лучшая производительность в CPython;
- меньший риск забыть
append.
Недостатком является то, что очень сложная логика может ухудшить читабельность понимания.
Суммируя:
- Понимание списка хорошо подходит для простых преобразований.
- Зачастую это быстрее и чище, чем ручной цикл.
- Для сложного ветвления лучше использовать обычный цикл
for.
Итог
Преимущества: - более короткий и декларативный код; - меньше временных переменных; - обычно немного лучшая производительность в CPython; - меньший риск забыть append.