无法通过列表推导式从字典列表提取指定键值的问题求助
提取字典列表中指定键的值
嘿,我来帮你搞定这个问题!你想要从字典列表里提取每个字典中'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
相关产品推荐
相关产品推荐

