的Python福利局这里寻找一些帮助......python列表的dicts如何合并key:value的值是否相同?
对于类型的字典中像Python列表可变数目:
list_dicts = [
{'id':'001', 'name':'jim', 'item':'pencil', 'price':'0.99'},
{'id':'002', 'name':'mary', 'item':'book', 'price':'15.49'},
{'id':'002', 'name':'mary', 'item':'tape', 'price':'7.99'},
{'id':'003', 'name':'john', 'item':'pen', 'price':'3.49'},
{'id':'003', 'name':'john', 'item':'stapler', 'price':'9.49'},
{'id':'003', 'name':'john', 'item':'scissors', 'price':'12.99'},
]
我试图找到组类型的字典的最佳方式,其中值关键的“ID”相等,则添加/合并任何唯一键:价值,创造类似类型的字典新的列表:到目前为止
list_dicts2 = [
{'id':'001', 'name':'jim', 'item1':'pencil', 'price1':'0.99'},
{'id':'002', 'name':'mary', 'item1':'book', 'price1':'15.49', 'item2':'tape', 'price2':'7.99'},
{'id':'003', 'name':'john', 'item1':'pen', 'price1':'3.49', 'item2':'stapler', 'price2':'9.49', 'item3':'scissors', 'price3':'12.99'},
]
,我已经想通了如何分组列表与http://stardict.sourceforge.net/Dictionaries.php下载:
myList = itertools.groupby(list_dicts, operator.itemgetter('id'))
但我有如何建立http://stardict.sourceforge.net/Dictionaries.php下载到的新的列表挣扎:
1)添加额外的键值,以具有相同的“ID”
第一字典实例2)设置“项目”和“价格”键的新名称(例如, “item1”,“item2”,“item3”)。这对我来说似乎笨重,有没有更好的办法?
3)循环每个“ID”配套建设了一个字符串后面输出
我选择返回传递一个字典的模板函数,其中的方便的,只是因为类型的字典的新列表通过描述性键设置变量很有帮助(有很多变量)。如果有更清晰简洁的方法来实现这一点,我会好奇学习。再一次,我对Python很陌生,并且在处理像这样的数据结构。