d={
'eth1': {
'R2': 'bw1',
'R3': 'bw3'
},
'eth2': {
'R2': 'bw2',
'R3': 'bw4'
}
}
result = {}
for k, v in d.iteritems():
for a,b in v.iteritems():
result.setdefault(a, {}).update({k:b})
print result
result = {}
res= [result.setdefault(a, {}).update({k:b}) for k, v in d.iteritems() for a,b in v.iteritems()]
print result
#Output: {'R2': {'eth2': 'bw2', 'eth1': 'bw1'}, 'R3': {'eth2': 'bw4', 'eth1': 'bw3'}}
不知道你为什么会被否决,这可不容易。像这样老老实实嵌套的词典是一个PITA。这将起作用:
您可以使用嵌套循环遍历字典,并通过使用
setdefault
更新键/值来构造新的字典。你知道吗输出:
您可以在列表理解中使用嵌套循环来编写较小的解决方案,这样会得到相同的结果。你知道吗
相关问题 更多 >
编程相关推荐