User
>>> 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()
В вашем варианте список остается без изменения
Имхо, в данном случае некорректно сравнивать время выполнения, т. к. в случае с генератором мы никаких вычислений не произвели
Также и тут, в случае с генератором мы не храним квадраты всех чисел в отдельном списке, мы можем получить слудующий квадрат при необходимости.
Как мне кажется лучше было бы добавить:
так сравнение будет более честным