我有一本这样的字典
{('a','b'):3, ('b','c'): 2, ('a','c'): 5}
我想将它转换为这种形式:
{'b': {'c': 2}, 'a': {'c': 5, 'b': 3}}
这意味着我必须建立一个像这种形式的字典:
d:{(str1,str2):int} --> {str1 : { str2 : int } }
最佳答案 您可能不希望基于set的defaultdict,而是基于dict.
dic = {('a','b'):3, ('b','c'): 2, ('a','c'): 5}
dic2 = defaultdict(dict)
for j,k in dic:
dic2[j][k] = dic[(j,k)]
## dic2 = defaultdict(<type 'dict'>, {'a': {'c': 5, 'b': 3}, 'b': {'c': 2}})
另外,d.keys()已经可以迭代,不需要调用list(d.keys()).实际上,要迭代字典d的键,最好是在d中调用键: