将两个列表合并为一个字典或打印它们(最短路径)

时间:2013-02-21 10:27:51

标签: python list dictionary

我有两个列表

a=[0,0.3,0.6]
b=['x','y','z']

我可以使用zip将它们组合到字典中,遍历它(也是由于某种原因的zip更改顺序)。但我想知道最短的代码(一个班轮),需要a,b并打印出来

0 \t 'x'
0.3 \t 'y'
0.6 \t 'z'

4 个答案:

答案 0 :(得分:2)

使用zip,但没有词典:

print '\n'.join('{} \t {}'.format(aa,bb) for aa,bb in zip(a,b))

print '\n'.join(map('{0[0]} \t {0[1]}'.format, zip(a,b)))

答案 1 :(得分:2)

你要创造一个词典的最好方法是理解(虽然有拉链......)

{key: value for (key, value) in zip(a,b)}

答案 2 :(得分:1)

使用zip

很容易
print '\n'.join(str(i)+' \t '+str(j) for i, j in zip(a, b))

或者:

print '\n'.join('%d \t %s' % (i, j) for i, j in zip(a, b))

当然还有eumiro使用的格式。

答案 3 :(得分:0)

for/join/map无论你使用什么,你都在某种程度上进行迭代。列表理解使其紧凑(或“更短”),print编辑列表的join也是如此。 map也在内部迭代每个元素。

列表理解:

[print("%d\t%d\n"%(i,j)) for i,j in zip(a,b)]