在未使用迭代变量的情况下更紧凑的列表理解

More Compact List Comprehension Where Iteration Variable is Unused

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

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

我想知道,是否有更紧凑的方式来表达该声明,尤其是通过避免 _unused 变量?

如果您的目标是从 do_sampling() return 值构建列表,则没有更紧凑的语法。

Python 惯例是对 使用 _ 我忽略了这个 变量:

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

据我所知,没有比这更好的方法了。惯例是这样做的:

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

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

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

_ 变量通常用作 Pythonic 符号表示已丢弃的、未使用的变量。