我有一个嵌套的元组列表,如下所示,
>>> my_nested_list_of_tuples
[[('AU041133(+)', 'Qtrt1'), ('Ahr(+)', 'Mex3c'), ('Arid3a(+)', 'Hmgb1')],
[('AU041133(+)', 'Topors'), ('Ahr(+)', 'Mex3c'), ('Arid3a(+)', 'Hmgb1')],
[('AU041133(+)', 'Tm9sf3'), ('Ahr(+)', 'Mex3c'), ('Arid3a(+)', 'Hmgb1')],
[('AU041133(+)', 'Gsn'), ('Ahr(+)', 'Ireb2'), ('Arid3a(+)', 'Hmgb1')],
[('AU041133(+)', 'Tm9sf3'), ('Ahr(+)', 'Ilf3'), ('Arid3a(+)', 'Arid3a')]]
我想将上面嵌套的元组列表转换为字典列表,整个元组作为键,0作为值,如下所示
[{('AU041133(+)', 'Qtrt1'): 0, ('Ahr(+)', 'Mex3c'): 0, ('Arid3a(+)', 'Hmgb1'): 0},
{('AU041133(+)', 'Topors'): 0, ('Ahr(+)', 'Mex3c'): 0, ('Arid3a(+)', 'Hmgb1'): 0},
{('AU041133(+)', 'Tm9sf3'): 0, ('Ahr(+)', 'Mex3c'): 0, ('Arid3a(+)', 'Hmgb1'): 0},
{('AU041133(+)', 'Gsn'): 0, ('Ahr(+)', 'Ireb2'): 0, ('Arid3a(+)', 'Hmgb1'): 0},
{('AU041133(+)', 'Tm9sf3'): 0, ('Ahr(+)', 'Ilf3'): 0, ('Arid3a(+)', 'Arid3a'): 0}]
我尝试了各种方法来实现这一点,但我没有成功,下面给出了我尝试的一种方法,
>>> d = defaultdict(list)
>>> dk=[] # for populating with list of dicts
>>> for k in my_tops:
... for i,v in k:
... d[(i,v)].append(0)
... dk.append(d)
...
>>> dk
[defaultdict(<class 'list'>, {('AU041133(+)', 'Qtrt1'): [0], ('Ahr(+)', 'Mex3c'): [0, 0, 0],
('Arid3a(+)', 'Hmgb1'): [0, 0, 0, 0], ('AU041133(+)', 'Topors'): [0], ('AU041133(+)', 'Tm9sf3'): [0, 0],
('AU041133(+)', 'Gsn'): [0], ('Ahr(+)', 'Ireb2'): [0], ('Ahr(+)', 'Ilf3'): [0], ('Arid3a(+)', 'Arid3a'): [0]}),
defaultdict(<class 'list'>, {('AU041133(+)', 'Qtrt1'): [0], ('Ahr(+)', 'Mex3c'): [0, 0, 0],
('Arid3a(+)', 'Hmgb1'): [0, 0, 0, 0], ('AU041133(+)', 'Topors'): [0], ('AU041133(+)', 'Tm9sf3'): [0, 0],
('AU041133(+)', 'Gsn'): [0], ('Ahr(+)', 'Ireb2'): [0], ('Ahr(+)', 'Ilf3'): [0], ('Arid3a(+)', 'Arid3a'): [0]}),
defaultdict(<class 'list'>, {('AU041133(+)', 'Qtrt1'): [0], ('Ahr(+)', 'Mex3c'): [0, 0, 0],
('Arid3a(+)', 'Hmgb1'): [0, 0, 0, 0], ('AU041133(+)', 'Topors'): [0], ('AU041133(+)', 'Tm9sf3'): [0, 0],
('AU041133(+)', 'Gsn'): [0], ('Ahr(+)', 'Ireb2'): [0], ('Ahr(+)', 'Ilf3'): [0], ('Arid3a(+)', 'Arid3a'): [0]}),
defaultdict(<class 'list'>, {('AU041133(+)', 'Qtrt1'): [0], ('Ahr(+)', 'Mex3c'): [0, 0, 0],
('Arid3a(+)', 'Hmgb1'): [0, 0, 0, 0], ('AU041133(+)', 'Topors'): [0], ('AU041133(+)', 'Tm9sf3'): [0, 0],
('AU041133(+)', 'Gsn'): [0], ('Ahr(+)', 'Ireb2'): [0], ('Ahr(+)', 'Ilf3'): [0], ('Arid3a(+)', 'Arid3a'): [0]}),
defaultdict(<class 'list'>, {('AU041133(+)', 'Qtrt1'): [0], ('Ahr(+)', 'Mex3c'): [0, 0, 0], ('Arid3a(+)', 'Hmgb1'): [0, 0, 0, 0],
('AU041133(+)', 'Topors'): [0], ('AU041133(+)', 'Tm9sf3'): [0, 0],
('AU041133(+)', 'Gsn'): [0], ('Ahr(+)', 'Ireb2'): [0], ('Ahr(+)', 'Ilf3'): [0], ('Arid3a(+)', 'Arid3a'): [0]})]