Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Скопируйте этот запрос в наш Консоль разработчика, чтобы попробовать его самостоятельно!
| Содержание | |
|---|---|
| System | Ваша задача — проанализировать предоставленный фрагмент кода Python и предложить улучшения для оптимизации его производительности. Определите области, где код можно сделать более эффективным, быстрым или менее ресурсоёмким. Предоставьте конкретные предложения по оптимизации с объяснениями того, как эти изменения могут улучшить производительность кода. Оптимизированный код должен сохранять ту же функциональность, что и исходный код, при этом демонстрируя повышенную эффективность. |
| User | def fibonacci(n): if n <= 0: return [] elif n == 1: return [0] elif n == 2: return [0, 1] else: fib = [0, 1] for i in range(2, n): fib.append(fib[i-1] + fib[i-2]) return fib |
def fibonacci(n):
a, b = 0, 1
for _ in range(n):
yield a
a, b = b, a + b
Объяснение: Использование функции-генератора с yield более эффективно по памяти для генерации последовательности Фибоначчи. Это избегает создания и хранения всей последовательности в списке. Вместо этого оно генерирует каждое число на лету по мере необходимости.
Was this page helpful?