2013-02-21 47 views
0
for row in rows: 
    a, b, c = row 

是好的,但如何在python列表中加入換行符解壓縮?

for row in rows: 
    alpha, beta, charlie, delta, echo, foxtrot, gamma, horseshoe, indigo, jimmy, killshot = row 

是不是很好。 Python通常在逗號後面支持換行符很好,但我無法弄清楚這個語法。這樣的事情會很好:

for row in rows: 
    alpha, 
    beta, 
    charlie, 
    delta, 
    echo, 
    foxtrot, 
    gamma, 
    horseshoe, 
    indigo, 
    jimmy, 
    killshot = row 

什麼是PEP 8的方式來處理這個,因爲長線是反PEP 8?

+0

如果您有這麼多的價值,我會避免首先解包。列表是存儲數據序列的一種非常自然的方式,那麼爲什麼偏離呢?如果你需要一個明確的方法來引用不同的項目,那麼只需定義一些常量並按如下所示爲列表建立索引:'x = row [ALPHA]'(假設你定義了'ALPHA = 0') – 2013-02-21 01:11:26

+0

該列表是一組來自sql查詢的結果。我將它們解包以使用代碼中的值。將它們解壓縮到如上所述的適當命名的變量中比將索引用於列表(即使索引是常量)更清楚嗎? – 2013-02-21 02:19:23

+0

呃,我想這是更偏好的事情。另一種選擇是使用'namedtuple'。 – 2013-02-21 03:55:45

回答

3

使用括號:

for row in rows: 
    (alpha, 
    beta, 
    charlie, 
    delta, 
    echo, 
    foxtrot, 
    gamma, 
    horseshoe, 
    indigo, 
    jimmy, 
    killshot) = row 

就個人而言,我可能會使用一個以上的項目,每行(打破在線條長期做下去,或者有一個在項目的含義的邏輯變化),但只要你一致,我認爲上面的風格也可以。

+0

太容易了,這很尷尬。謝謝! – 2013-02-21 02:16:13

相關問題