> From: Ka-Ping Yee [mailto:ping@zesty.ca] > > It's just not the way i expect for-loops to work. Perhaps we would > need to survey people for objective data, but i feel that most people > would be surprised if > > for x in y: print x > for x in y: print x > > did not print the same thing twice, or if > > if x in y: print 'got it' > if x in y: print 'got it' > > did not do the same thing twice. I realize this is my own opinion, > but it's a fairly strong impression i have. > > Well, for a generator, there is no underlying sequence. > > while 1: print next(gen) > > makes it clear that there is no sequence, but > > for x in gen: print x > > seems to give me the impression that there is. I think this is the crux of the matter. You see for: loops as inherently non-destructive - that they operate on containers. I (and presumably Guido, though I would never presume to channel him ;) see for: loops as inherently destructive - that they operate on iterators. That they obtain an iterator from a container (if possible) is a useful convenience. Perhaps the terminology is confusing. Consider a queue. for each person in the queue: service the person Is there anyone who would *not* consider this to be destructive (of the queue)? Tim Delaney
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