Guido van Rossum wrote: > [...] > >How about an until keyword in generator expressions: > > > New keywords are not on the table for generator expressions. You > could do this with 'while' (which is just 'until not' -- note that > your example uses that :-) You're right, using while would be better. > but I'd be against making this part of the > syntax more complex. You can do that with itertools.takewhile or > dropwhile anyway. But sum(len(line) for line in file if not line.startswith("#") while line.strip()) looks simple than sum(itertools.takewhile(lambda l: l.strip(), len(line) for line in file if not line.startswith("#")) >>def last(it): >> for value in it: >> pass >> return value > > What if it is empty? This should raise an exception. (It does, but not the correct one! ;)) >>first(line for line in file if line.startswith("#")) >> >>if not last(file): >> # last line not terminated > > > The comment is incorrect. That should have been: if not last(file).endswith("\n"): Bye, Walter Dörwald
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