Так как вы просто добавляете цифры от наименьшего к наибольшему по порядку, просто используйте пустой список:
dig = []
i = 0
while num > 9:
dig.append(num % 10)
i += 1
num /= 10
dig.append(num)
В качестве альтернативы просто сделайте
dig = list(int(d) for d in str(num))
, который превратится в123
в '123'
, затем превратите каждую цифру обратно в число и поместите их в список, в результате чего [1, 2, 3]
.
Если вы хотите, чтобы она была в том же порядке, что и ваша версия, используйте
dig = reversed(int(d) for d in str(num))
Если вы действительно хотите получить длину числа, проще всего сделать len(str(num))
, который превращает его в строку, а затем получает длину.