Fonction lambda dans une liste par compréhension

L’auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour à tous !

J’ai une légère incompréhension sur ce que me renvoie mon code. Le code en question est :

import numpy as np

N = 25
x = np.linspace(0, .9, N)

phi_poly = [lambda z: z ** j for j in range(N)]

Le problème, c’est que lorsque j’appelle phi_poly[0](x), je n’obtiens pas un tableau de 1 comme attendu… De plus, toutes les fonctions lambda définies renvoient x ** (N - 1). C’est comme s’il gardait la référence sur j après l’avoir ajouté à la liste. Comment cela se fait-il ?

Merci d’avance !

Édité par BunshinKage

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte