I understand that list comprehensions are only for simple list construction. So you don&#x27;t print or branch. Comment is pretty simple though.<p>My perspective is that in large codebases I have far more trouble remembering function names and what they do than I ever have trouble decoding statements. So the increased code size, long functions and ... that comes from those long list construction statements and loops always seems to take more out of me than difficult list or dictionary comprehensions. Also there are very much fewer places for bugs to hide.<p>There&#x27;s also the additional argument that list comprehensions are more efficient because they don&#x27;t actually construct the list. They generate iterators. It is not a huge difference like in Haskell but it definitely helps.<p>And there are special cases where you have to use list comprehensions : infinite lists can work as a comprehension, yet the equivalent code to generate them is pages long.