Более компактное понимание списка, где переменная итерации не используется
У меня есть несколько функций выборки, которые нужно вызывать определенное количество раз, как в следующей инструкции:
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)]