仅使用列表推导式提取字典列表的值时报错如何解决
错误原因
你代码的错误出在遍历逻辑:for dict_ in final_answers[0]中final_answers[0]是字典对象,直接遍历字典默认返回字典的键(字符串类型),因此循环中拿到的dict_实际是'abc'、'def'这类字符串,调用.values()方法自然会触发属性错误。
方案1:输出一维合并列表
如果需要把列表中所有字典的所有值合并为一个一维列表,用如下代码:
final_answers = [{'abc': True, 'def': True}] final_answers = [value for dict_ in final_answers for value in dict_.values()] # 输出结果:[True, True]
方案2:输出二维分组列表
如果需要保留每个字典的取值分组,每个字典对应一个子列表,用如下代码:
final_answers = [{'abc': True, 'def': True}] final_answers = [[value for value in dict_.values()] for dict_ in final_answers] # 输出结果:[[True, True]]
内容的提问来源于stack exchange,提问作者Ujjwal Mahajan
相关产品推荐
相关产品推荐

