A list comprehension has various components. Anyone know when each of
the elements is evaluated? In the form
[v0 for v0 in expr0 if expr1]
If v0 appears in expr0 or expr1 the evaluation order matters.
I think of the above as being a rewrite of
results = []
for v0 in expr0:
if expr1:
results.append(v0)
return results
Further,
[v0, v2 for v0 in expr0 if expr1 for v2 in expr2 if expr3]
leads to
results = []
for v0 in expr0:
if expr1:
for v2 in expr2:
if expr3:
results.append((v0, v2))
return results
First of all, is that a correct analog of the list comprehension?
With this latter expansion the values of v0 and v2 could appear in expr4
or expr5. Again, the evaluation order would matter.
James
--
https://mail.python.org/mailman/listinfo/python-list