如何从嵌套字典结构提取count值并整理为目标键值格式
提取嵌套字典列表的count值并按外层键分组
原始数据结构
d={0:[{'key':'apple', 'count':50},{'key':'ibm', 'count':25}], 1: [{'key':'apple', 'count':40},{'key':'ibm', 'count':29}], 2:[{'key':'apple', 'count':44},{'key':'ibm', 'count':21}]}
需求
提取每个外层键对应列表中所有字典的count值,整理为外层键关联列表的形式。
尝试的代码及错误结果
尝试代码:
zipped={} count=0 for item in d: #print(item) for i in d[item]: zipped[count]=i['count'] count+=1
得到结果:
{0: 50, 1: 25, 2: 40, 3: 29, 4: 44, 5: 21}
期望结果
{0:[50,25], 1:[40,29], 2:[44,21]}
解决方法
问题出在你用递增的count作为新键存储单个count值,而非复用外层键来存储对应列表。以下是两种可行实现:
方法一:普通循环实现
遍历外层字典的键值对,对每个内层列表提取所有count值组成新列表,关联到原外层键:
result = {} for key, lst in d.items(): result[key] = [item['count'] for item in lst]
方法二:字典推导式(更简洁)
用一行代码完成相同逻辑:
result = {key: [item['count'] for item in lst] for key, lst in d.items()}
运行任意一种方法,均可得到期望结果。
内容的提问来源于stack exchange,提问作者Tranquil Oshan
相关产品推荐
相关产品推荐

