按键遍历字典和组项目列表 [英] Iterate over list of dict and group item by key
本文介绍了按键遍历字典和组项目列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个字典列表:
my_list = [
{'name': 'AAA', 'date': '2018-05-14', 'price': 20.0},
{'name': 'AAA', 'date': '2018-05-15', 'price': 22.0},
{'name': 'AAA', 'date': '2018-05-16', 'price': 30.0},
{'name': 'BBB', 'date': '2018-05-14', 'price': 15.0},
{'name': 'BBB', 'date': '2018-05-15', 'price': 32.0}
]
我的问题是如何遍历该列表以生成这种格式的列表?
My question is how can I iterate over that list to produce a list in this format?
parsed_list = [
{'name': 'AAA', 'data': [['2018-05-14', 20.0], ['2018-05-15', 22.0], ['2018-05-16', 30.0]]},
{'name': 'BBB', 'data': [['2018-05-14', 15.0], ['2018-05-15', 32.0]]}
]
我尝试了此问题中描述的方法: Python:字典但是我需要一种不同的输出格式,我无法弄清楚需要更改什么.
I tried approach described in this question: Python: group list items in a dict but I need a different output format and I can't figure out what I need to change.
推荐答案
一种方法可能是使用 defaultdict
:
from collections import defaultdict
my_list = [
{'name': 'AAA', 'date': '2018-05-14', 'price': 20.0},
{'name': 'AAA', 'date': '2018-05-15', 'price': 22.0},
{'name': 'AAA', 'date': '2018-05-16', 'price': 30.0},
{'name': 'BBB', 'date': '2018-05-14', 'price': 15.0},
{'name': 'BBB', 'date': '2018-05-15', 'price': 32.0}
]
tmp = defaultdict(list)
for item in my_list:
tmp[item['name']].append([item['date'],item['price']])
parsed_list = [{'name':k, 'data':v} for k,v in tmp.items()]
print(parsed_list)
结果:
[{'name': 'AAA', 'data': [['2018-05-14', 20.0],
['2018-05-15', 22.0], ['2018-05-16', 30.0]]},
{'name': 'BBB', 'data': [['2018-05-14', 15.0], ['2018-05-15', 32.0]]}]
这篇关于按键遍历字典和组项目列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文