当前位置: 首页 > 面试题库 >

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

阎彬炳
2023-03-14
问题内容

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

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'])

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


问题答案:

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

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 ]


 类似资料:
  • 问题内容: 我正在尝试获取词典列表中所有键的列表,以便填写csv.DictWriter的fieldnames参数。 以前,我有这样的事情: 我当时习惯于使用列表中的第一本字典并提取其键。 现在我有了类似的东西,其中一个字典比另一个字典具有更多的key:value对(可能是任何结果)。新密钥是根据来自API的信息动态添加的,因此它们可能会或可能不会出现在每个字典中,而且我事先也不知道会有多少个新密钥

  • 问题内容: 我有字典。 如何将的所有值提取到列表中? 问题答案: 如果你只需要字典的键,和使用:。 如果你只需要在字典中的值,和使用:。 如果您想同时使用键和值,请使用:返回一个元组列表。

  • 问题内容: 如何最好地获得以下结构的所有“名称”字符串元素: 我的方法是: 这可能有效,但是Java中没有任何内容。在这里我只可以写这样的: ? 问题答案: 使用Java 8:

  • 问题内容: 如何在Python中获取字典中的值列表? 在Java中,将Map的值作为列表获取就像在操作中一样容易。我想知道Python中是否有类似的简单方法可以从字典中获取值列表。 问题答案: 是的,这与Python 2 完全相同: 在Python 3中 (在其中返回字典值的 视图 ):

  • 问题内容: 我有一个对象列表。对象具有3个字符串属性。我想制作一个仅包含类中特定属性的列表。 有内置的功能可以做到这一点吗? 问题答案: 列表理解会很好地工作: 但是,由于您要求:-),所以有内置功能的组合。

  • 问题内容: 我有一个字典列表,我需要从字典的给定键中获取值的列表(所有字典都具有相同的键)。 例如,我有: 我需要得到1,2,3 当然,我可以通过以下方式获得它: 但是我想找到一种更好的方法。 问题答案: 使用简单的列表推导(如果您确定每个字典都有键): 否则,您需要首先检查是否存在: