Python функция со списком - PullRequest
0 голосов
/ 25 марта 2020

выучи python сам. Я сделал функцию для заполнения списка. Но у меня есть 2 варианта, и я хочу выяснить, какой из них лучше и почему. Или они оба ужасны в любом случае, я хочу знать правду.

def foo (x):
    l = [0] * x
    for i in range(x):
        l[i] = i
    return l

def foo1 (x):
    l = []
    for i in range(x):
        l.append(i)
    return l

1 Ответ

1 голос
/ 25 марта 2020

с точки зрения производительности первая версия foo лучше:

%timeit foo(1000000)
# 52.4 ms ± 1.99 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
%timeit foo1(1000000)
# 67.2 ms ± 916 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)

, но pythoni c способ распаковки итератора в списке будет:

list(range(x))

и быстрее:

%timeit list(range(1000000))
# 26.7 ms ± 661 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...