Сообщество Python рекомендует использовать списки, а не просто использовать цикл for.

Зачем использовать списки?

Причина, по которой люди обычно объясняют, почему следует предпочесть списковые включения, заключается в том, что они более «элегантны» и компактны. Однако для меня есть еще одна причина:

Они выделяются в коде. Увидев понимание списка, вы можете мгновенно определить назначение цикла. Вы можете быстро понять, что мы намерены создать другой список вместо применения побочных эффектов, таких как печать или вызов API на каждой итерации (был бы использован цикл for для последнего). Это может помочь разработчику читать код и быстрее понимать его, особенно если он используется в длинной функции.

Так как же я могу заранее узнать, нужно ли мне использовать понимание списка?

Практика делает совершенным, это то, к чему вы привыкли. Вам не нужно каждый раз задаваться вопросом, использовать его или нет. Просто напишите свой цикл for. Затем оглянитесь на него.

Если вы видите шаблон, в котором вы только добавляете элемент в список, как показано ниже:

new_list = []
for item in my_list:
  new_list.append(item.name)

Вы знаете, что можете заменить его на:

new_list =[item.name for item in my_list]

или даже с if:

new_list = []
for item in my_list:  
  if item.id > 3:
    new_list.append(item.name)

становится:

new_list = [item.name for item in my_list if item.id > 3]

Если поначалу вам будет нелегко мыслить в терминах спискового понимания, не заставляйте себя. Просто оглянитесь назад и распознайте закономерности. Через (довольно короткое) время вы сможете заглянуть вперед и узнать, использовать ли цикл for или понимание списка.