我有兩個列表合併兩個列表成爲一個字典或者打印出來(最短路徑)
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