用zip函数就能搞定
>>> a=[[1,2,3,4],['a', 'b', 'c', 'd'], ['e', 'f', 'g', 'h']]
用一次zip函数,你发现,数组里的数字两两合并到了一起
>>> zip(a[1],a[2])
[('a', 'e'), ('b', 'f'), ('c', 'g'), ('d', 'h')]
用2次zip函数,就得到了你希望的数据,唯一不同的是,这个不是一个dictionary形式
>>> zip(a[0],zip(a[1],a[2]))
[(1, ('a', 'e')), (2, ('b', 'f')), (3, ('c', 'g')), (4, ('d', 'h'))]
然后你再调用dictionary的构造函数就OK了
>>> dict(zip(a[0],zip(a[1],a[2])))
{1: ('a', 'e'), 2: ('b', 'f'), 3: ('c', 'g'), 4: ('d', 'h')}
li=[[1,2,3,4],['a', 'b', 'c', 'd'], ['e', 'f', 'g', 'h']]
D = {}
for i in li[0]:
D[i] = [li[1][i-1],li[2][i-1]]
print D
>>> {1: ['a', 'e'], 2: ['b', 'f'], 3: ['c', 'g'], 4: ['d', 'h']}
>>> lst = [[1,2,3,4],['a', 'b', 'c', 'd'], ['e', 'f', 'g', 'h']]
>>> dict([(x[0], x[1:]) for x in zip(*lst)])
{1: ('a', 'e'), 2: ('b', 'f'), 3: ('c', 'g'), 4: ('d', 'h')}
>>>