What's the problem with nested comprehensions? How else do you create bi-dimensional stuff?
[[None for _y in range(y)] for _x in range(x)]
for two dimensions is fine, while [None for _x in range(x) for _y in range(y)]
(to create a flattened 2-dim list? excuse the dummy example) is just begging for later headache. Explicit looping is much more readable. Note the flipped order of expressions -- these two statements create the same iterators.Not to mention, you can even reuse the name for extra evil:
[i for i in range(2) for i in range(3)]
results in [0, 1, 2, 0, 1, 2]