Bonjour
Je viens de remarquer que dans un dictionnaire en compr�hension, on ne peut pas utiliser une variable d�finie dans un sous-dictionnaire dans le dictionnaire "parent".
Exemple: je cr�e un dictionnaire o� chaque cl� sera associ�e � un tuple de sa valeur
Jusque l�, pas de probl�me.
Code python : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 dd={k : tuple(range(k+1)) for k in range(1, 6)} print(dd) # {1: (0, 1), 2: (0, 1, 2), 3: (0, 1, 2, 3), 4: (0, 1, 2, 3, 4), 5: (0, 1, 2, 3, 4, 5)}
Mais si je cherche � d�placer chaque tuple dans un sous-dictionnaire...
...l� o� je m'attendais � avoir {1: {"data" : (0, 1)}, 2: {"data" : (0, 1, 2)}, 3: {"data" : (0, 1, 2, 3)}, 4: {"data" : (0, 1, 2, 3, 4)}, 5: {"data" : (0, 1, 2, 3, 4, 5)}} j'ai eu un NameError: name 'k' is not defined.
Code python : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 dd={k : {"data" : tuple(range(k+1)) for k in range(1, 6)}} print(dd)
Effectivement avec le recul c'est compr�hensible. Le sous-dictionnaire �tant probablement g�n�r� � part, la variable "k" ne remonte pas sur le parent. Mais sur le coup j'ai �t� un peu surpris.
PS : en fait, m�me pas besoin de sous-dictionnaire. Une simple superposition de cast suffit � reproduire le souci.
Si quelqu'un a un avis...
Code python : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 d1={k : tuple(range(k+1)) for k in range(1, 6)} # ok d2={k : tuple(tuple(range(k+1)) for k in range(1, 6))} # Erreur
Partager