Для некоторых п, позволяет определить результат следующим образом:Оценка экспрессии в состоянии петли
result = [x for x in [i for i in range(0, n)]]
оценить ли питон внутренний список каждый раз? Или он оценивает его только в первый раз? Поскольку это разница между временем пробега O (N) или O (N^2).
Например:
result = [x for x in func()]
ли Python вызвать функцию FUNC каждой итерации?
Это может быть дубликат, я просто не мог его найти.
Ум, каждый итеративный в вашем первом выражении повторяется один раз. Сначала «диапазон» повторяется для построения внутреннего списка, затем внутренний список повторяется (один раз) для создания внешнего списка (который идентичен внутреннему списку и «диапазону», что делает все итерирование довольно глупым). – Blckknght
Да, это просто пример. Значит, функция будет вызываться только один раз? Это делает O (n)? – wjk2a1
Это точно так же, как обычный цикл 'for', так же, как' for x в func(): do_whatever() ', функция func будет вызываться только один раз. Сложность времени - это «O (n)» плюс временная сложность «func» (которая в нотации Big-O обычно означает, что хуже). – Blckknght