我有两个列表合并两个列表成为一个字典或者打印出来(最短路径)
a=[0,0.3,0.6]
b=['x','y','z']
我可以使用压缩将它们组合成字典,遍历它(也可用于某些原因拉链更改订单一个)。但我想知道最短的代码(一个衬垫),即采用A,B,并打印出
0 \t 'x'
0.3 \t 'y'
0.6 \t 'z'
我有两个列表合并两个列表成为一个字典或者打印出来(最短路径)
a=[0,0.3,0.6]
b=['x','y','z']
我可以使用压缩将它们组合成字典,遍历它(也可用于某些原因拉链更改订单一个)。但我想知道最短的代码(一个衬垫),即采用A,B,并打印出
0 \t 'x'
0.3 \t 'y'
0.6 \t 'z'
使用拉链,但没有字典:
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)))
这是易用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使用的格式。
你要创建一个字典的最佳方式是与理解(拉链,虽然...)
{key: value for (key, value) in zip(a,b)}
for/join/map
无论你使用,你在一定程度上被迭代。列表理解使得它变得紧凑(或“更短”),print
编辑列表也是如此。 map
也内部迭代每个元素。
列表理解:
[print("%d\t%d\n"%(i,j)) for i,j in zip(a,b)]
这只适用于Python 3,最重要的是它的风格非常糟糕。 – Volatility 2013-02-21 10:56:11
@Volatility,你能解释一下这很糟糕吗? – krips89 2013-02-21 11:47:38
List comps应该用来制作列表,而不是多次执行动作。 – Volatility 2013-02-21 21:14:27
字典是没有顺序 – YXD 2013-02-21 10:29:07
'拉链()'不*不*更改输入的顺序。也许你对输入有困惑? – 2013-02-21 10:30:15