返回列表中的词典值列表

时间:2014-12-02 17:50:53

标签: python list dictionary

我有一个包含字典的列表,每个字典都有相同的键和不同的值,

如何获取列表中每个字典的值列表?

使用dictionary.values()我可以获得字典值的列表,但是如果它在数组中呢?

是否有必要使用for循环来获取列表中的每个字典?

这就是我想要的:

list= [{'a':0,'b':1,'c':2}, {'a':3,'b':4,'c':5}, {'a':6,'b':2,'c':3},]

all_values = [0,1,2,3,4,5,6] # THIS IS THE ACTUAL QUESTION

values_of_a = [0,3,6]  # THIS COULD BE BETTER IF POSSIBLE

3 个答案:

答案 0 :(得分:4)

您可以使用list comprehensions执行这两项任务:

>>> array = [{'a':0,'b':1,'c':2}, {'a':3,'b':4,'c':5}, {'a':6,'b':2,'c':3},]
>>> [y for x in array for y in x.values()]
[0, 1, 2, 3, 4, 5, 6, 2, 3]
>>> [x['a'] for x in array]  # Assuming that all dicts have an 'a' key
[0, 3, 6]
>>>

此外,array在技术上不是一个数组。这是一个list。 Python中的数组是array.array的实例。

答案 1 :(得分:1)

或者您可以使用lambda

>> b = map(lambda x: x.values(), a)
>> reduce(lambda x, y: x+ y, b)
>> [0, 2, 1, 3, 5, 4, 6, 3, 2]
>> map(lambda x: x['a'], a)
>> [0, 3, 6]

答案 2 :(得分:0)

您使用for循环:

all_values = []
for d in array:
    all_values.extend(d.values())

values_of_a = []
for d in array:
    values_of_a.append(d["a"])