Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 连接字典_Python_Dictionary_Merge_Key - Fatal编程技术网

Python 连接字典

Python 连接字典,python,dictionary,merge,key,Python,Dictionary,Merge,Key,我有三个列表,第一个是名字列表,第二个是字典列表,第三个是数据列表。列表中的每个位置与其他列表中的相同位置相对应。列表_1[0]在列表_2[0]和列表_3[0]中有相应的数据。我想将这三个列表转换为字典中的一个字典,列表_1中的值是主键。我如何做到这一点,同时保持一切井然有序 >>> a = [1,2,3] >>> b = [4,5,6] >>> c = [7,8,9] >>> dict(zip(a, zip(b, c)))

我有三个列表,第一个是名字列表,第二个是字典列表,第三个是数据列表。列表中的每个位置与其他列表中的相同位置相对应。列表_1[0]在列表_2[0]和列表_3[0]中有相应的数据。我想将这三个列表转换为字典中的一个字典,列表_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在下面指出的,您可能想看看您的输入数据是否很大
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])

如果这些事情的顺序很重要,你就不应该使用字典。根据定义,它们是无序的。您可以使用其中一种浮动,或者等待python 2.7或3.1,它将在collections模块中包含一个有序字典实现。

如果a、b、c将非常庞大,我建议使用itertools模块中的izip。