列表創建每個鍵多個值的字典我有字典的以下列表:從字典
listofdics = [{'StrId': 11, 'ProjId': 1},{'StrId': 11,'ProjId': 2},
{'StrId': 22, 'ProjId': 3},{'StrId': 22, 'ProjId': 4},
{'StrId': 33, 'ProjId': 5},{'StrId': 33, 'ProjId': 6},
{'StrId': 34, 'ProjId': 7}]
我需要得到所有ProjId
值StrId
是重複的。所以這是我在尋找的輸出:
new_listofdics = [{11:[1,2]}, {22:[3,4]}, {33:[5,6]], {34:[7]}]
我寫的創建與StrId
值作爲密鑰字典列表的功能,並與共享相同的密鑰值的所有ProjId
列表。那就是:
def compare_projids(listofdics):
proj_ids_dups = {}
for row in listofdics:
id_value = row['StrId']
proj_id_value = row['ProjId']
proj_ids_dups[id_value]=proj_id_value
if row['StrId'] == id_value:
sum_ids = []
sum_ids.append(proj_id_value)
proj_ids_dups[id_value]=sum_ids
return proj_ids_dups
這是輸出我現在得到:
new_listofdics= {33: [6], 34: [7], 11: [2], 22: [4]}
我看到的是,append
替換,而不是在結尾處添加他們每個ProjId
值與最後一個迭代,列表。
我該如何解決這個問題?...
它不是'append'。你每次都用'sum_ids = []' – thefourtheye