6 ms·
Solving things with list comprehensions is very idiomatic in Python. Also, not nesting things is very idiomatic Python ("Flat is better than nested" is part of
by malkarouri 8y ago
Solving things with list comprehensions is very idiomatic in Python.
Also, not nesting things is very idiomatic Python ("Flat is better than nested" is part of the Zen).
So, people generally don't think of nested list comprehensions as idiomatic.
- reificator 8y agoAnd `explicit is better than implicit` is idiomatic python, but the language uses the most implicit characters available on the average keyboard (` ` and ` `) to denote control flow.
- lmm 8y agoThe language uses indentation levels to denote control flow, and those are very explicit - much more so than braces in fact.
- reificator 8y agoThey're not though. They only exist as the relation between the edge and the start of content. How many levels of indentation are there on each line? https://i.imgur.com/s1WBHxU.png https://i.imgur.com/s1WBHxU.png Spoiler: Line 3 has no indentation while Line 6 has one level. Line 4 has a mix of tabs and spaces that would confuse Python. The fact of the matter is that indentation is white space, and white space is implicit by definition. It only exists as the gap between other things.
- lmm 8y agoIn that sense control flow only exists as the relation between other things, so it makes sense for it to be denoted that way. If a line with no code on it is indented in the forest and nobody hears it, does the line execute?
- Franciscouzo 8y agoStop using a legacy version of Python. You will get a "TabError: inconsistent use of tabs and spaces in indentation" exception if you use Python 3.
- reificator 8y agoI haven't used python with inconsistent indentation recently, that's true.
- iak8god 8y agoI write my python interactively in a repl, and often end up with deeply nested list comprehensions as a result. I always need to break them up to have any chance of understanding it even a day later.