我有三个列表,第一个是名称的列表,第二个是字典的列表,并且第三个是数据的列表。列表中的每个位置,在其他列表中的相同位置对应。 LIST_1 [0]具有List_2 [0]和List_3 [0],等等对应的数据,我想将这些三个列表到辞典的辞典内,与LIST_1作为主键的值。如何做到这一点,同时保持一切为了?

有帮助吗?

解决方案

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> c = [7,8,9]
>>> dict(zip(a, zip(b, c)))
{1: (4, 7), 2: (5, 8), 3: (6, 9)}

请参阅文档有关zip的详细信息。

由于lionbest低于所指出的,你可能想看看 itertools.izip() 如果您输入数据是大的。 izip本质上是做同样的事情zip,但它创造的迭代器,而非列表。这样一来,你不创建字典之前创建大型临时名单。

其他提示

的Python 3:

combined = {name:dict(data1=List_2[i], data2=List_3[i]) for i, name in enumerate(List_1)}

的Python 2.5:

combined = {}
for i, name in enumerate(List_1):
    combined[name] = dict(data1=List_2[i], data2=List_3[i])

如果这些东西事项的顺序,你不应该使用字典。根据定义,它们是无序的。你可以使用的许多ordered_dictionary实现的飘绕一个或等待蟒2.7或3.1,其中将包括所述集合模块中的有序字典实现。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top