On Tue, 11 Jul 2000, Guido van Rossum wrote: > [(x,y+z) for x in (1,2,3,4,5,6); for y in "abc" for z in "de"] > > For me, the semicolon separates much stronger than the for, so (to me) > this feels like (applying parentheses to show grouping): > > (for x); (for y for z) When written like the above, i agree that the semicolon separates more strongly. Perhaps we should rearrange the syntax to make the semicolon more interior? This also addresses Greg's poll: > > for x in [10, 20, 30]; y in [1, 2]: > print x+y [...] > *Everyone* voted (B). How about writing this as: for x; y in [10, 20, 30]; [1, 2]: print x + y > And how do you write the other grouping? As a result, this provides a way to write parallel loops within list comprehensions, although it might not be very clear until you're familiar with the way it's written above. At least it's possible: [(x, y+z) for x; y in (1, 2, 3, 4, 5, 6); "abc" for z in "de"] If colons were introduced, would that help keep things clear? [(x, y+z): for x; y in (1, 2, 3, 4, 5, 6); "abc": for z in "de"] This would then be directly reminiscent of for x; y in (1, 2, 3, 4, 5, 6); "abc": for z in "de": list.append((x, y+z)) which provides the appropriate meaning. I don't like extra punctuation, but i'm not sure what else to do here since "for" alone is a very weak separator. -- ?!ng
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4