小编典典

如何从字典列表中提取特定键的所有值?

python

我有一个字典列表,它们在列表中都具有相同的结构。例如:

test_data = [{'id':1, 'value':'one'}, {'id':2, 'value':'two'}, {'id':3, 'value':'three'}]

我想value从列表中的每个字典中获取每个项目:

['one', 'two', 'three']

我当然可以遍历列表并使用for循环提取每个值:

results = []
for item in test_data:
    results.append(item['value'])

但是我的数据集很大。我想知道是否有更快的方法。


阅读 224

收藏
2020-12-20

共1个答案

小编典典

如果只需要迭代一次值,请使用生成器表达式:

generator = ( item['value'] for item in test_data )

...

for i in generator:
    do_something(i)

另一个(深奥的)选项可能mapitemgetter-一起使用-它可能会比生成器表达式快一点,或者不快一点,具体取决于情况:

from operator import itemgetter

generator = map(itemgetter('value'), test_data)

而且,如果您绝对需要一个列表,则列表理解要比iterated快list.append,因此:

results = [ item['value'] for item in test_data ]
2020-12-20