любая функция, которая вычисляет список только до необходимого значения - PullRequest
0 голосов
/ 13 апреля 2019

Для выполнения следующего кода на моем компьютере требуется 27 секунд.

any([i==0 for i in range(100000000)])

Причина в том, что python вычисляет весь список, прежде чем применить any. Я хочу любую функцию, которая вычисляет список только по мере необходимости.

Я знаю, что вы можете сделать это таким образом

value=false
for i in range(100000000):
    if i==0:
        value=true
        break

Но я ищу один вкладыш.

1 Ответ

1 голос
/ 13 апреля 2019

Удалите [], чтобы сделать его выражением генератора, проблема решена:

any(i == 0 for i in range(100000000))

Для Python 2 используйте версию генератора xrange вместо range.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...