的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很陌生,並且在處理像這樣的數據結構。