[Python-ideas] dict.items to accept optional iterable with keys to use
Steven D'Aprano
steve at pearwood.info
Wed Apr 4 10:23:01 CEST 2012
On Wed, Apr 04, 2012 at 11:07:55AM +0300, Victor Varvariuc wrote:
> Sometimes you want a dict which is subset of another dict. It would nice if
> dict.items accepted an optional list of keys to return. If no keys are
> given - use default behavior - get all items.
Too trivial to bother with.
# I want a list of keys/values:
items = [(key, mydict[key]) for key in list_of_keys]
# I want them generated on demand:
iterable = ((key, mydict[key]) for key in list_of_keys)
# I want a new dict:
newdict = dict((key, mydict[key]) for key in list_of_keys)
Both of those require that list_of_keys includes keys that do exist. If
you want to skip missing keys:
[(k,v) for (k,v) in mydict.items() if k in list_of_keys]
To be even more efficient, use a set of keys instead of a list.
--
Steven
More information about the Python-ideas
mailing list