我有两个列表
list1 = [1,a,2,b,3,c]
list2 = [5,d,6,e,7,f]
我尝试使用list(zip(list1, list2))
那就是我得到的:
[(1, 5), ('a', 'd'), (2, 6), ('b', 'e'), (3, 7), ('c', 'f')]
我想要这样的东西作为输出:
{1:a, 5:d, 2:b, 6:e, 3:c,7:f}
感谢您的帮助。
答案 0 :(得分:8)
通过iter
和zip
:
>>> it = iter(list1 + list2)
>>> dict(zip(it,it))
{1: 'a', 2: 'b', 3: 'c', 5: 'd', 6: 'e', 7: 'f'}
答案 1 :(得分:2)
我首先将您的两个列表加在一起
>>> values = list1 + list2
>>> values
[1, 'a', 2, 'b', 3, 'c', 5, 'd', 6, 'e', 7, 'f']
然后使用dict
理解力以其他所有元素跨过列表,并以相同的步幅压缩列表,但偏移一个。
>>> {key:value for key,value in zip(values[::2], values[1::2])}
{1: 'a', 2: 'b', 3: 'c', 5: 'd', 6: 'e', 7: 'f'}