jO.*_*jO. 2 python dictionary tuples nested-lists dictionary-comprehension
我是python的新手,我正在尝试使用元组作为键和嵌套列表作为多个值来创建字典.
该列表嵌套在三元组中; [[[Isolation source],[host],[country]]...etc]
示例如下:
value_list = [[['NaN'], ['sponge'], ['Palau']], [['skin'], ['fish'], ['Cuba']], [['claw'], ['crab'], ['Japan: Aomori, Natsudomari peninsula']]....]
Run Code Online (Sandbox Code Playgroud)
和键的元组;
key_tuple = ('AB479448', 'AB479449', 'AB602436',...)
因此,我希望输出看起来像这样;
dict = {'AB479448': [NaN, sponge, Palau], 'AB479449': [skin, fish, Cuba], 'AB602436': [claw, crab, Japan: Aomori, Natsudomari peninsula]
Run Code Online (Sandbox Code Playgroud)
我尝试了一些不同的解决方案,但是我可以开展工作......例如字典理解;
dict = { i: value_list for i in key_tuple }
Run Code Online (Sandbox Code Playgroud)
上面给出了这个(使用不同的键但是将相同的值与它们相关联);
{'AB479448': [[[NaN, sponge, Palau]]], 'AB479449': [[[NaN, sponge, Palau]]], 'AB602436': [[[NaN, sponge, Palau]]]...etc..}
Run Code Online (Sandbox Code Playgroud)
不胜感激任何指点......谢谢!
你可以使用itertools.chain.from_iterable
,itertools.izip
(或zip
)和词典理解:
>>> from itertools import chain, izip
>>> value_list = [[['NaN'], ['sponge'], ['Palau']], [['skin'], ['fish'], ['Cuba']], [['claw'], ['crab'], ['Japan: Aomori, Natsudomari peninsula']]]
>>> key_tuple = ('AB479448', 'AB479449', 'AB602436')
>>> {k: list(chain.from_iterable(v)) for k, v in izip(key_tuple, value_list)}
{'AB479449': ['skin', 'fish', 'Cuba'],
'AB479448': ['NaN', 'sponge', 'Palau'],
'AB602436': ['claw', 'crab', 'Japan: Aomori, Natsudomari peninsula']}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1870 次 |
最近记录: |