2013-02-21 66 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