以下是3个列表:
continue
我如何从那里到达?:
list1 = ['set1', 'set2', 'set3']
list2 = [1, 2, 3]
list3 = [2, 3, 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)
dict(zip(list1, zip(list2, list3))) # {'set1': (1, 2), 'set2': (2, 3), 'set3': (3, 4)}
答案 2 :(得分:0)
假设list1
,list2
和list3
具有相同的长度:
>>> { 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)}