2013-04-29 3 views
1

Начиная со списка объектов словаря, как я могу получить новый список, содержащий только некоторые значения словаря, на основе ключей?Получение нового списка из списка словарей

Например:

my_list = [ {'foo':1},{'bar':2},{'foo':3} ] 
new_list = grab_values(my_list, 'foo') 

Что мы хотим:

new_list = [1, 3] 

ответ

8

Первое, что приходит на ум:

In [2]: [x['foo'] for x in my_list if 'foo' in x] 
Out[2]: [1, 3] 

В функции:

In [3]: def grab_values(l, key): 
    ...:  return [x[key] for x in l if key in x] 
    ...: 

In [4]: grab_values(my_list, 'foo') 
Out[4]: [1, 3] 
+0

Да, я просто использовал его для примера, никогда в моем реальном коде. Отредактировано OP. –

+0

@ user11177 Хорошо :) удалил уведомление. Вы можете удалить комментарий. –

+0

Кажется, я не допускаю .. может быть, не хватает репутации. –

Смежные вопросы