RE: [Python-Dev] Toowtdi: Datatype conversions

Raymond Hettinger wrote:
Choosing between:
list(d) or d.keys()
Which is the one obvious way of turning a dictionary into a list? IMO, list(d) is it.
Except that, "turning a dictionary into a list" as an English phrase is indeterminate--do you want the keys or the values or both? list(d) happens to choose the keys, but that doesn't make it the "one obvious way". If I were being introduced to list() for the first time, I would probably expect/desire it to be lossless, producing something like d.items() instead.
So, one question is whether set() and frozenset() should grow an analogue to the keys() method:
set('banana').elements() ['a', 'b', 'n']
I don't think so, for the reason that .keys() is effectively a disambiguator as I just described. With sets, there is no mapping, and therefore no ambiguity. Robert Brewer MIS Amor Ministries fumanchu@amor.org

"Robert Brewer" <fumanchu@amor.org> writes:
Raymond Hettinger wrote:
Choosing between:
list(d) or d.keys()
Which is the one obvious way of turning a dictionary into a list? IMO, list(d) is it.
Except that, "turning a dictionary into a list" as an English phrase is indeterminate--do you want the keys or the values or both?
Indeed. In particular, I often write for k in d: ... and for k,v in d: ... and seem to subconsciously expect Python to work out the rest :-) (this is not a feature request...) Cheers, mwh -- Unfortunately, nigh the whole world is now duped into thinking that silly fill-in forms on web pages is the way to do user interfaces. -- Erik Naggum, comp.lang.lisp
participants (2)
-
Michael Hudson
-
Robert Brewer