【发布时间】:2017-09-13 08:49:23
【问题描述】:
我有一本字典:
d = {'a1':{'b1':1, 'b2':2}, 'a2':{'b1':3, 'b2':4}}`.
我想切换字典的a 和b 键。换句话说,我希望得到的字典是:
dd = {'b1':{'a1':1, 'a2':3}, 'b2':{'a1':2, 'a2':4}}
不使用循环。
这是我现在使用的循环:
d = {'a1':{'b1':1, 'b2':2}, 'a2':{'b1':3, 'b2':4}}
from collections import defaultdict
dd=defaultdict(dict)
for k in d.keys():
for tmp_k in d.get(k).keys():
dd[tmp_k][k] =d[k][tmp_k]
print dict(dd)
这个可以做成一行吗?
【问题讨论】:
-
你的问题是什么?您尝试过任何解决方案吗?
-
你有这个工作 with 循环吗?对于一般情况来说,这并不是那么简单,我认为它作为单行 tbh 可能难以理解。
-
d["a1"]和d["a2"]字典的键总是相同的吗?或者它们可以不同吗? -
是的,它们总是一样的
标签: python python-2.7 itertools dictionary-comprehension