Search
Write a publication
Pull to refresh
0
0
Send message
В таком случае меняется поведение функции, в приведенном варианте, если передан список, то он мутируется:
>>> def f(value, seq=None):
...     if not seq:
...         seq = []
...     seq.append(value)
...     return seq
>>> a = [1, 2]
>>> f(3, a)
[1, 2, 3]
>>> a
[1, 2, 3]

В вашем варианте список остается без изменения
>>> def f(value, seq=[]):
...     return [*seq, value]
>>> a = [1, 2]
>>> f(3, a)
[1, 2, 3]
>>> a
[1, 2]


Как мы видим, время выполнения

Имхо, в данном случае некорректно сравнивать время выполнения, т. к. в случае с генератором мы никаких вычислений не произвели
и сохранить квадраты всех чисел, которые нужно хранить отдельно в другом списке

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

Как мне кажется лучше было бы добавить:
for i in cubes: 
    do_something()

так сравнение будет более честным

Information

Rating
Does not participate
Registered
Activity