0

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?

Dimitris Fasarakis Hilliard
  • 150,925
  • 31
  • 268
  • 253
lissajous
  • 371
  • 5
  • 17

0 Answers0