> > > I don't recall what I said then. Did I say it was a feature that > > > > > > L = [x for x in R] > > > print x > > > > > > would print the last item of R? > > Someone more-or-less did -- in the tutorial. See bottom below. Oh bah! > > A problem with such code irrespective of anything else is that it > > fails when R is empty. > > Same would be true of for loops, except that typical after-for usage, > such as searching for item in list, has else clause to set control > variable to default in 'not found' cases, which include empty lists. The regular for loop won't change. > The Ref Manual currently says nothing about leakage or overwriting. > That should make leakage fair game for plugging. Unfortunately the Ref Manual is notoriously incomplete. > On the other hand, Tutorial 5.1.4 List Comprehensions says: > ''' > To make list comprehensions match the behavior of for loops, > assignments to the loop variable remain visible outside of the > comprehension: > > >>> x = 100 # this gets overwritten > >>> [x**3 for x in range(5)] > [0, 1, 8, 27, 64] > >>> x # the final value for range(5) > 4 > ''' > (Pointed out by John Roth in response to my c.l.py posting.) > I have added note to SF 827209. Sigh. What a bummer to put this in a tutorial. :-( But it won't stop me from deprecating the feature. --Guido van Rossum (home page: http://www.python.org/~guido/)
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