Vous devez affecter les éléments reconverti dans la sous-liste (listy[0]
):
listy[0][:] = [int(x) for x in listy[0]]
Explication:
for item in listy[0]:
int(item)
Les itère ci-dessus sur les éléments de la sous-liste et convertis eux à des entiers, mais il n'attribue pas le résultat de l'expression int(item)
à quoi que ce soit. Par conséquent, le résultat est perdu.
[int(x) for x in listy[0]]
est une compréhension de liste (sorte de raccourci pour la boucle for
) que parcourt la liste, la conversion de chaque article à un nombre entier et en retournant une nouvelle liste. La nouvelle liste est ensuite renvoyée (en place, facultative) à la liste externe.
Ceci est une solution très personnalisée pour votre question spécifique. Une solution plus générale implique une récursion pour obtenir les sous-listes, et un moyen de détecter les candidats pour la conversion numérique.
'int (item)' <- une valeur est calculée puis * rejetée *. Mettez-le quelque part. –