You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法通过列表推导式从字典列表提取指定键值的问题求助

提取字典列表中指定键的值

嘿,我来帮你搞定这个问题!你想要从字典列表里提取每个字典中'a'键对应的数值,其实用列表推导式就能轻松解决,不过你之前的写法都存在一些小问题:

  • [x,i for x in l1[i]]:这里i没有提前定义,而且语法不符合列表推导式的规范,列表推导式的正确结构是[表达式 for 变量 in 可迭代对象]。
  • [x for x in l1[x]]:循环中的x是列表里的字典,用字典作为列表的索引显然是错误的,列表只能用整数类型的索引值。
  • [x[0] for x in l1]:这种写法是取字典的第一个键对应的值,虽然Python 3.7+的字典是有序的,但你明确需要的是'a'键的值,这种写法既不可靠也不符合需求。

正确实现方式

最直观且易读的方法就是用列表推导式,遍历列表中的每个字典,直接取出'a'键对应的值:

l1 = [{'a': 123, 'b': 128}, {'a': 998, 'b': 345}]
result = [d['a'] for d in l1]
print(result)  # 输出: [123, 998]

补充方法:使用map函数

如果你偏好函数式编程的风格,也可以用map配合匿名函数来实现:

result = list(map(lambda d: d['a'], l1))

两种方法都能得到你预期的[123, 998]结果,其中列表推导式在Python中更常用,可读性也更强。

内容的提问来源于stack exchange,提问作者Manuel Santi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:10:20