Python 以元组为键的字典到以键为元组的第一个元素的新字典
Python dictionary with tuples as key to new dictionary with keys as first element of tuple
我想将字典 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)]}
有人能告诉我怎么做吗?
只需使用 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)
如果您真的不关心列表在新字典值中的顺序,您应该追加而不是在 0 索引上插入,因为在 0 索引上插入比追加慢。
我想将字典 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)]}
有人能告诉我怎么做吗?
只需使用 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)
如果您真的不关心列表在新字典值中的顺序,您应该追加而不是在 0 索引上插入,因为在 0 索引上插入比追加慢。