Более компактное понимание списка, где переменная итерации не используется

У меня есть несколько функций выборки, которые нужно вызывать определенное количество раз, как в следующей инструкции:

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

Интересно, есть ли более компактный способ выразить это утверждение, особенно избегая _unused переменная?

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 для обозначения отброшенной, неиспользованной переменной.

Если ваша цель - создать список из do_sampling() возвращаемые значения, нет более компактного синтаксиса.

Соглашение Python заключается в использовании _ Я игнорирую эти переменные:

samples = [do_sampling() for _ in range(n_samples)]
Другие вопросы по тегам