0

我有两个清单

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'
4

4 回答 4

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)))
于 2013-02-21T10:30:25.567 回答
2

创建 dict 的最佳方法是理解(尽管使用 zip ......)

{key: value for (key, value) in zip(a,b)}
于 2013-02-21T10:31:34.927 回答
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使用的格式。

于 2013-02-21T10:31:12.803 回答
0

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

列表理解:

[print("%d\t%d\n"%(i,j)) for i,j in zip(a,b)]
于 2013-02-21T10:48:42.063 回答