我有两个清单
a=[0,0.3,0.6]
b=['x','y','z']
我可以使用 zip 将它们组合到字典中,遍历它(也出于某种原因 zip 更改 a 的顺序)。但我想知道最短的代码(一个衬里),它需要 a,b 并打印出来
0 \t 'x'
0.3 \t 'y'
0.6 \t 'z'
我有两个清单
a=[0,0.3,0.6]
b=['x','y','z']
我可以使用 zip 将它们组合到字典中,遍历它(也出于某种原因 zip 更改 a 的顺序)。但我想知道最短的代码(一个衬里),它需要 a,b 并打印出来
0 \t 'x'
0.3 \t 'y'
0.6 \t 'z'
使用 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)))
创建 dict 的最佳方法是理解(尽管使用 zip ......)
{key: value for (key, value) in zip(a,b)}
这很容易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使用的格式。
for/join/map
无论你使用什么,你都在某种程度上进行迭代。print
列表理解使其紧凑(或“更短”),join
ed 列表也是如此。map
还在内部迭代每个元素。
列表理解:
[print("%d\t%d\n"%(i,j)) for i,j in zip(a,b)]