Teilen Sie die Anzahl in Ziffern und speichern Sie Sie in der Liste (array) mit python
Möchte ich teilen-Nummer, in Ziffern und speichern Sie Sie in der Liste (oder array) in python. Also Erstens, ich sollte die Liste erstellen wie
dig = [0 for i in range(10)]
dann
i = 0
while num > 9:
dig[i] = num % 10
i += 1
num /= 10
dig[i] = num
Aber ich weiß nicht wirklich wie einfach das erstellen einer Liste für 10 Bereiche, ist es möglich, die Länge des Anzahl ohne Wiederholung-Schleife
i = 0
num2 = num
while num2 > 9:
num2 /= 10
i += 1
i += 1
und dann wiederholen Sie den ersten Teil des Codes? Oder einfach machen, wie ich gemacht in den ersten Platz? Ich weiß nicht, die genaue Länge der Zahl, aber es wird nicht sehr sein, lange
Also irgendwelche Tipps? Vielleicht kennen Sie eine bessere Art und Weise zu dividieren zahlen in Ziffern, oder vielleicht etwas anderes.
InformationsquelleAutor Templar | 2011-08-18
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da Sie nur das hinzufügen der Ziffern von der kleinsten zur größten in Ordnung ist, benutzen Sie einfach eine leere Liste:
Alternativ einfach tun
Die wiederum d.h.
123
in'123'
drehen Sie dann jede Ziffer zurück in eine Zahl und Schreibe Sie in eine Liste, was in[1, 2, 3]
.Wenn Sie es wollen, in der gleichen Reihenfolge wie Ihre version, verwenden Sie
Wenn Sie wirklich wollen einfach nur, um die Länge der Zahl, ist es am einfachsten zu tun
len(str(num))
schaltet es in einen string bekommt dann die Länge.Vorausgesetzt
num
ist eine positive ganze Zahl, die Anzahl der Ziffern gleich istint(math.log10(num) + 1)
.Aber besser als das ist, nur die
append
Methode derlist
-- dann werden Sie nicht haben, um zu wissen, die Länge vorher.Sogar noch einfacher (obwohl die Liste in umgekehrter Reihenfolge):
oder
Obwohl
map
wird oft gesagt, zu unpythonic, diese Aufgabe ist auf jeden Fall für Sie: