我有两个列表
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'
答案 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)]