7

I have a list of dictionaries, and I need to get a list of the values from a given key from the dictionary (all the dictionaries have those same key).

For example, I have:

l = [ { "key": 1, "Val1": 'val1 from element 1', "Val2": 'val2 from element 1' }, { "key": 2, "Val1": 'val1 from element 2', "Val2": 'val2 from element 2' }, { "key": 3, "Val1": 'val1 from element 3', "Val2": 'val2 from element 3' } ] 

I need to get 1, 2, 3.

Of course, I can get it with:

v=[] for i in l: v.append(i['key']) 

But I would like to get a nicer way to do so.

1
  • 1
    do they all definitely have the key? Commented Jul 30, 2014 at 15:34

1 Answer 1

11

Using a simple list comprehension (if you're sure every dictionary has the key):

In [10]: [d['key'] for d in l] Out[10]: [1, 2, 3] 

Otherwise you'll need to check for existence first:

In [11]: [d['key'] for d in l if 'key' in d] Out[11]: [1, 2, 3] 
Sign up to request clarification or add additional context in comments.

2 Comments

One line... Or less ;)
That's what I was looking for, doing it on a single line. Will test it, thank you.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.