Michael Hudson wrote: > > Guido van Rossum <guido@python.org> writes: > > > > M.-A. Lemburg: > > > > Shouldn't be hard to do... the C API for this is already in place: > > > > PyDict_Next(). I'd prefer a method .getitem(), though, which then > > > > returns a tuple (key, value). > > > > > > IMO '.pickitem()' would be a better name, since many people would > > > think, that 'getitem()' would take some kind of index as parameter. > > > Nevertheless I think this is a nice idea, though. > > > > Pronouncement: > > > > It is only efficient to get the *first* item, so let's make that > > explicit. The method names will be: > > > > .firstkey() > > .firstvalue() > > .firstitem() > > > > Moshe will check in a patch. > > > > Thinking aloud: > > > > Would it be useful to also implement popkey(), popvalue(), popitem(), > > which would remove the first item and then return the relevant part of > > it? > > I must admit I can't think of a situation where .firstkey would be > more useful than .popkey; I thought that this discussion was > discussion was inspired by the wish to write code like: > > while not set.empty(): > x = set.popfirstkey() > ... > > Maybe I'm jsut being dense, though. Just curious: how would you get at the deleted value when using .popfirstkey() ? But you have a point: dict.pop() returning the first filled slot in the dictionary as tuple (key,value) would probably be most effective. It's also nice and short. BTW, I don't get the inspiration for the "first" part in those names... it makes you think that there's an order to dictionary items when in reality there isn't. > FWIW, I think > > dict.firstkey() > > reads better than > > dict.firstitem()[0] > > if the former's what you're actually trying to say. Why not write > > for k,_ in dict.items(): > ... > > ? (Overstating the case slightly for effect, but I hope the point is > clear). No, the point is that you can modify the dictionary within the loop. You wouldn't see any changes using the second technique. -- Marc-Andre Lemburg ______________________________________________________________________ Company: http://www.egenix.com/ Consulting: http://www.lemburg.com/ Python Pages: http://www.lemburg.com/python/
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