更多紧凑列表理解,其中迭代变量未被使用

时间:2015-05-16 09:12:07

标签: python iterator generator list-comprehension generator-expression

我有几个需要调用一些时间的采样函数,如下面的指令所示:

samples = [do_sampling() for _unused in range(n_samples)]

我想知道,是否有更简洁的表达方式,特别是通过避免_unused变量?

2 个答案:

答案 0 :(得分:2)

如果你的目标是根据do_sampling()返回值构建一个列表,那么就没有更紧凑的语法了。

Python惯例是将_用于我忽略此变量:

samples = [do_sampling() for _ in range(n_samples)]

答案 1 :(得分:2)

我知道并没有更好的方法来做到这一点。惯例是这样做:

samples = [do_sampling() for _ in range(n_samples)]

如果您使用的是Python 2.x而不是Python 3.x,则可以使用生成器版本的范围xrange()而不是range()来提高性能:

samples = [do_sampling() for _ in xrange(n_samples)]

_变量通常用作废弃的未使用变量的Pythonic表示法。