web-dev-qa-db-fra.com

Transformez un seul numéro en chiffres uniques Python

Je veux faire un nombre, par exemple 43365644 en nombres simples [4,3,3 ...., 4,4]

et l'ajouter sur une liste

20
user3221242

Cela peut être fait assez facilement si vous:

  1. Utilisez str pour convertir le nombre en chaîne afin de pouvoir l'itérer.

  2. Utilisez un compréhension de la liste pour diviser la chaîne en chiffres individuels.

  3. 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]
>>>
51
iCodez

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]
11
inspectorG4dget

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.

5
Maxime Lorant

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)]
2
Slater Victoroff