我有以下格式的元组:
(639283, 298290710, 1385)
(639283, 298290712, 1389)
(639283, 298290715, 1395)
(745310, 470212995, 2061)
(745310, 470213821, 3713)
(745310, 470215360, 6791)
(745310, 470215361, 6793)
(745310, 470215363, 6797)
(911045, 374330803, 4905)
(911045, 374330804, 4907)
(911045, 374330807, 4913)
(911045, 374330808, 4915)
(911045, 374330809, 4917)
我想转换成这样的嵌套字典:
{639283:{298290710:1385, 298290712:1389, 298290715:1395},745310:{470212995:2061,470213821:3713}............}
有pythonic的方法可以做到这一点吗?似乎很简单,但我似乎无法弄清楚。
最佳答案
您可以将元组拆包与 collections.defaultdict
结合使用,以使您的生活更轻松。
使用defaultdict
作为默认值创建一个外部dict
。然后,您只需遍历元组列表一次,即可随便设置适当的值。
from collections import defaultdict
d = defaultdict(dict) # dict where the default values are dicts.
for a, b, c in list_of_tuples: # Each tuple is "key1, key2, value"
d[a][b] = c
当然,您大概知道这些值实际上代表什么,因此您可以给字典和各个项目提供比
a
,b
,c
和d
更好,更具描述性的名称。