[Python-3000] PEP 3106: Revamping dict.keys(), .values() and .items() (original) (raw)

Talin talin at acm.org
Wed Dec 20 08:16:53 CET 2006


Guido van Rossum wrote:

I've written a quick version of PEP 3106, which expresses my ideas about how the dict methods to access keys, values and items should be redone.

The text is in svn: http://svn.python.org/view/peps/trunk/pep-3106.txt?rev=53096&view=markup At some point it will appear on python.org: http://python.org/dev/peps/pep-3106/ Comments please? (Or we can skip the comments and go straight to the implementation stage. Patch anyone?)

Comments:

  1. values() should be documented as list-like rather than set-like. (Or better yet bag-like, but Python doesn't have bags. In other words, it's really an unordered collection of items with no special indexing semantics or uniqueness constraint.)

My reasoning is that generally people don't expect to be able to do set membership tests of the values of a mapping; Mostly, values() is used for iteration. And given that all of the set-like operations are slow, let's just cut to the chase and say that values() isn't a set at all.

  1. Names for d_keys, et al:

    -- map_keys_view -- map_values_view -- map_keys_values_view or map_items_view

Essentially, its a class that can take any map, and provide a view of its keys / values / etc.

Alternatively, we could stick them in a module called 'mapview' and call them:

-- mapview.keys -- mapview.values -- mapview.items

-- Talin



More information about the Python-3000 mailing list