Ceci est mon code:
<generator object <genexpr> at 0x7fc8101f76d0>
5 Réponses :
Utiliser des parenthèses autour d'une compréhension en fait une expression génératrice; Si vous souhaitez une liste code> compréhension, utilisez des crochets: latéral-note: votre Temps code d'origine> n'est pas un
Liste code> soit (parce que vous avez utilisé des parenthèses, pas des crochets comme le délimiteur); C'est un
tuple code> (semblable à une liste
code>, mais immutable). Cela fonctionne très bien dans ce cas car vous n'essayez pas de le modifier. P> p>
Premier, pour votre utilisation, cela n'a pas d'importance s'il s'agit d'un tuple ou d'une liste, cependant. P> second, Temps code> est un tuple, pas une liste. Une liste utiliserait des crochets:
( Temps / 10 pour Temp in Temps) Code> est une expression génératrice, pas une compréhension de liste. Vous voulez P>
new_temps = [temps/10 for temp in temps]
Vous utilisez une expression génératrice.
soit vous devez utiliser la compréhension de la liste correspondante à l'aide de donne p> ou vous devez itérer sur le générateur: p> donne p> Vous pouvez également le convertir en liste (qui fonctionne par itération dessus): p> donne p> (itération par exemple avec un J'ai également corrigé un bug dans l'expression génératrice - devrait être [ code> ...
] code> au lieu de
(< / code> ...
) code>: p>
pour code> la boucle Travaillez également avec la compréhension de la liste utilisée dans la première option, bien que si vous avez beaucoup d'articles et tous em> vous allez faire, c'est itérer une fois sur elle, alors il est plus efficace à la mémoire d'utiliser le
( code> ...
) code> forme.) p>
TEMP / 10 code>, pas
Temps / 10 code>. P> p>
* expression génératrice
@ Juanpa.arrivillaga Merci.
Vous déclarez des listes en Python avec [], également votre pour appeler tout votre liste, pas l'élément, qui est "Temps", pas "Temps". Ce serait comme ça:
temps = [345, 9876, 23, 100, 567] new_temps = [temp / 10 for temp in temps] print(new_temps) >> [34.5, 987.6, 2.3, 10.0, 56.7]
Si vous souhaitez convertir Temps en liste, vous pouvez utiliser:
temps = (345, 9876, 23, 100, 567) new_temps = [temp / 10 for temp in temps] print(new_temps)
Vous n'êtes pas ajouté à une liste nulle part. En effet, il n'y a aucune liste nulle part, seulement un tuple,
Temps code>. Vous dites que vous êtes nouveau à Python, alors qu'attendez-vous exactement
(Temps / 10 pour Temp in Temps) Code> Pour faire pourquoi?
En outre, à 0x7fc8101f76d0> code> n'est pas une erreur. C'est simplement la représentation imprimée d'un objet générateur, ce qui est créé par
(Temps / 10 pour Temp in Temps) Code>, appelé une expression génératrice i>. Si vous êtes nouveau à Python, vous devriez probablement éviter ces types de choses jusqu'à ce que vous ayez une poignée sur les bases de la langue.