我需要將一個串列與字典中的值進行比較,并建立一個新的字典,其中包含舊字典中不存在的值。
olddict = {'user': ['group1', 'group2'],
'user2': ['group1']}。
RequiredGroups = ['group1', 'group2','group3', 'group4']
newdict= {}
for groups in RequiredGroups:
for key, value in olddict.items()。
if groups not in value。
newdict[key] = groups
print(newdict)
當前輸出
{'user2': 'group4', 'user': 'group4'}。
期望的輸出
{'user': ['group3', 'group4'] 。
'user2': ['group2', 'group3', 'group4']}。
uj5u.com熱心網友回復:
要修改你的解決方案:
代替:
newdict[key] = groups
使用:
newdict.setdefault(key, []).append(group)
完整的代碼:
olddict = {'user'/span>: ['group1'/span>, 'group2'/span>],
'user2': ['group1']}。
RequiredGroups = ['group1', 'group2','group3', 'group4']
newdict= {}
for groups in RequiredGroups:
for key, value in olddict.items()。
if groups not in value。
newdict.setdefault(key, []).append(group)
print(newdict)
輸出:
{'user2': ['group2'/span>, 'group3'/span>, 'group4'/span>], 'user'/span>: ['group3', 'group4']}。
一個更短的解決方案:
盡管如此,用一個字典理解的單執行緒可能會更容易:{k: [x for x in RequiredGroups if x not in v] for k, v in olddict.items()}。
{'user': ['group3', 'group4'], 'user2': ['group2', 'group3', 'group4']} 。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/309977.html
標籤:
