2024-04-20 15:56:22 发布
网友
如果我有以下词典:
dict_a = {'a': {'x': 0, 'y': 1, 'z': 2}, 'b': {'x': 3, 'y': 4, 'z': 5}}
将词典结构转换为以下内容的最佳方法是什么:
dict_b = {'x': {'a': 0, 'b': 3}, 'y': {'a': 1, 'b': 4}, 'z': {'a': 2, 'b': 5}}
如果字典总是有两层深,您可以使用defaultdict实现这一点:
defaultdict
from collections import defaultdict dict_b = defaultdict(dict) for k,v in dict_a.items(): for k2,v2 in v.items(): dict_b[k2][k] = v2
它给出:
>>> dict_b defaultdict(<class 'dict'>, {'x': {'a': 0, 'b': 3}, 'z': {'a': 2, 'b': 5}, 'y': {'a': 1, 'b': 4}}) >>> dict(dict_b) {'x': {'a': 0, 'b': 3}, 'z': {'a': 2, 'b': 5}, 'y': {'a': 1, 'b': 4}}
defaultdict是dict的子类,可以使用dict_b = dict(dict_b)在普通的dict中再次打开结果(如第二个查询中所示)。你知道吗
dict
dict_b = dict(dict_b)
您也可以使用pandas来实现:
pandas
from pandas import DataFrame dict_b = DataFrame(dict_a).transpose().to_dict()
这将提供:
>>> DataFrame(dict_a).transpose().to_dict() {'y': {'a': 1, 'b': 4}, 'x': {'a': 0, 'b': 3}, 'z': {'a': 2, 'b': 5}}
使用默认词典
如果字典总是有两层深,您可以使用
defaultdict
实现这一点:它给出:
defaultdict
是dict
的子类,可以使用dict_b = dict(dict_b)
在普通的dict
中再次打开结果(如第二个查询中所示)。你知道吗和熊猫在一起
您也可以使用
pandas
来实现:这将提供:
相关问题 更多 >
编程相关推荐