我想将字典 d1 转换为字典 d2:
d1 = {('a','b'):1, ('a','c'):2, ('a','d'):3, ('b','c'):2, ('b','d'):1, ('c','f'):2, ('f','c'):2 }
d2 = {'a': [('b',1),('c',2) ,('d',3)], 'b':[('c',2),('d',1)], 'c':[('f',2)], 'f':[('c',2)]}
有人能告诉我怎么做吗?
答案 0 :(得分:1)
只需使用 for 循环并遍历字典,然后以元组第一个元素为键创建一个新字典
base = {('a','b'):1, ('a','c'):2, ('a','d'):3, ('b','c'):2, ('b','d'):1, ('c','f'):2, ('f','c'):2 }
newDict = {}
for key in base:
#Key is the tuple
if not key[0] in newDict.keys():
newDict[key[0]] = []
newDict[key[0]].insert(0, (key[1], base[key]))
print(newDict)
如果你真的不关心列表在新字典值中的顺序,你应该 append 而不是 insert on 0 index,因为 insert on 0 index 比 append 慢。