如何从3个列表中制作字典

时间:2015-10-13 02:44:23

标签: python list python-3.x dictionary

以下是3个列表:

continue

我如何从那里到达?:

list1 = ['set1', 'set2', 'set3']
list2 = [1, 2, 3]
list3 = [2, 3, 4]

4 个答案:

答案 0 :(得分:4)

zip()dictionary comprehension一行使用

>>> {key: (value1, value2) for key, value1, value2 in zip(list1, list2, list3)}
{'set1': (1, 2), 'set2': (2, 3), 'set3': (3, 4)}

在Python3中,您可以这样做(extended unpacking):

>>> {key: value for key, *value in zip(list1, list2, list3)}
{'set3': [3, 4], 'set1': [1, 2], 'set2': [2, 3]}

虽然,我个人更喜欢@ alfasin的解决方案。实际上不需要理解。

答案 1 :(得分:4)

您可以通过打包dictzip来实现它:

dict(zip(list1, zip(list2, list3)))  # {'set1': (1, 2), 'set2': (2, 3), 'set3': (3, 4)}

答案 2 :(得分:0)

假设list1list2list3具有相同的长度:

>>> { list1[i]:(list2[i],list3[i]) for i in range(len(list1)) }
{'set1': (1, 2), 'set2': (2, 3), 'set3': (3, 4)}

答案 3 :(得分:0)

如果您确定列表的长度相同,则可以使用enumerate

list1 = ['set1', 'set2', 'set3']
list2 = [1, 2, 3]
list3 = [2, 3, 4]

dict1 = { element: (list2[index], list3[index]) for index,element in enumerate(list1)}

print dict1
#{'set1': (1, 2), 'set2': (2, 3), 'set3': (3, 4)}