Informatică, întrebare adresată de PersoanaPersonala, 8 ani în urmă

De ce in Python, elementele lambda initializate intr-o bucla cu valori diferite returneaza acelasi rezultat?
Adica:
>>> squares = []
>>> for x in range(5):
... squares.append(lambda: x**2)

Răspunsuri la întrebare

Răspuns de newbiejava1998
1

Nu folosesti bine lambda. Lambda in Python este un fel de functie matematica, care trebuie definita inainte de folosire.

lambda a : f(a)

De exemplu in cazul tau, programul arata asa:

>>> x = lambda a: a**2

>>> squares = []

>>> for i in range(5):

...     squares.append(x(i))

...

>>> squares

[0, 1, 4, 9, 16]

Sper ca te-ai lamurit!

Alte întrebări interesante