return respective values when mutiple keys are passed in dictionary

Arnaud Delobelle arnodel at gmail.com
Mon May 7 09:40:02 EDT 2012


On 7 May 2012 12:31, Nikhil Verma <varma.nikhil22 at gmail.com> wrote:
> HI All
>
> I was clearing my concepts on dictionary and stuck in this problem.
> I have a dictionary which i have formed by using zip function on two list so
> that one list (which i have hardcoded) becomes the keys and the other list
> becomes its values.
>
> Now i want to know how can i get the values of keys at once if i pass the
> keys in a dictionary.
>
> Let say I have a dictionary
>
> mydict = {'a':'apple' , 'b':'boy' ,'c' : 'cat', 'd':'duck','e':'egg'}
>
> Now if i do :-
>
> mydict.get('a')
> 'apple'

mydict['a'] is the usual way to get the value associated with a key.
The difference is that it will throw an exception if the key doesn't
exist, which is most of the time the sanest thing to do.

> What i want is some i pass keys in get and in return i should have all the
> values of those keys which i pass.
>
> ##################
> mydict.get('a','b','c')    ###demo for what i want
> 'apple','boy','cat'        ### Output i want
> #################

1. You can use a list comprehension

>>> [mydict[k] for k in 'a', 'b', 'c']
['apple', 'boy', 'cat']

2. You can use map (for python 3.X, you need to wrap this in list(...))

>>> map(mydict.__getitem__, ['a', 'b', 'c'])
['apple', 'boy', 'cat']

3. You can use operator.itemgetter

>>> from operator import itemgetter
>>> itemgetter('a', 'b', 'c')(mydict)
('apple', 'boy', 'cat')

-- 
Arnaud



More information about the Python-list mailing list