【发布时间】:2013-02-21 00:26:14
【问题描述】:
for row in rows:
a, b, c = row
很好,但是
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 的?
【问题讨论】:
-
如果你有这么多的值,我会避免首先拆包。列表是存储数据序列的一种非常自然的方式,那么为什么要偏离它呢?如果您需要一种清晰的方式来引用不同的项目,那么只需定义一些常量并按如下方式索引您的列表:
x = row[ALPHA](假设您已经定义了ALPHA = 0) -
该列表是来自 sql 查询的一组结果。我正在解压缩它们以使用代码中的值。将它们解压缩到像上面这样适当命名的变量中不是更干净,而不是必须使用带有索引的列表(即使索引是常量)?
-
嗯,我想这更像是一种偏好。另一种选择是使用
namedtuple。 -
'命名元组对于将字段名称分配给 csv 或 sqlite3 模块返回的结果元组特别有用' - HA,感谢您的提示。
标签: python list newline iterable-unpacking