Expanding stack with list comprehensions

18 views Asked by At

How to explain that list comperhensions expression does not work (python 3.8.2 32bit env):

def perfect_squares(max_psqare):
   psqares = [0]
   return [psqares.append(psqares[-1] + 2 * i - 1) for i in range(1, int(max_psqare ** 0.5) + 1)]

in contrast to:

def perfect_squares(max_psqare):
   psqares = [0]
   max_base = int(max_psqare ** 0.5)
   for i in range(1, max_base + 1):
      psqares.append(psqares[-1] + 2 * i - 1)
   return psqares

First one gives array of None values? Comperhension expression does not have access to psqares stack?

0

There are 0 answers