Je veux faire un nombre, par exemple 43365644 en nombres simples [4,3,3 ...., 4,4]
et l'ajouter sur une liste
Cela peut être fait assez facilement si vous:
Utilisez str
pour convertir le nombre en chaîne afin de pouvoir l'itérer.
Utilisez un compréhension de la liste pour diviser la chaîne en chiffres individuels.
Utilisez int
pour reconvertir les chiffres en nombres entiers.
Voici une démonstration:
>>> n = 43365644
>>> [int(d) for d in str(n)]
[4, 3, 3, 6, 5, 6, 4, 4]
>>>
Voici un moyen de le faire sans le transformer d'abord en chaîne (basé sur des analyses comparatives rudimentaires, cela est environ deux fois plus rapide que la chaîne de n
en premier):
>>> n = 43365644
>>> [(n//(10**i))%10 for i in range(math.ceil(math.log(n, 10))-1, -1, -1)]
[4, 3, 3, 6, 5, 6, 4, 4]
Le moyen le plus simple est de transformer l'int en chaîne et de prendre chaque caractère de la chaîne comme élément de votre liste:
>>> n = 43365644
>>> digits = [int(x) for x in str(n)]
>>> digits
[4, 3, 3, 6, 5, 6, 4, 4]
>>> lst.extend(digits) # use the extends method if you want to add the list to another
Cela implique certaines opérations de casting, mais il est lisible et acceptable si vous n'avez pas besoin de performances extrêmes.
Si vous voulez changer votre numéro en une liste de ces numéros, je le lancerais d'abord dans un string
, puis le couler dans une liste se briserait naturellement sur chaque caractère:
[int(x) for x in str(n)]