Как из целого числа сделать массив?

Как при заполнении массива, вводить консоль целое число = 12345, но он записывался в массив как [1,2,3,4,5]? Массив двумерный. Если делаю так:

for i in range(0,n):
a.append([int(j) for j in input().split()])

приходится, то в массив сохраняется само число 12345.


Ответы (3 шт):

Автор решения: Came Up
n = 12345

# Вариант 1. int - функция, которую map применит к каждому символу
# в итерабельной последовательности n (строка - итерабельная последовательность))
print(list(map(int, str(n))))  # -> [1, 2, 3, 4, 5]

# map, filter - эти встроенные функции можно переписать
# с помощью генераторов списка. Например, так:
print([int(x) for x in str(n)])  # -> [1, 2, 3, 4, 5]

# Вариант 2. Пройтись циклом по всем цифрам числа начиная с конца
a = []
while n > 0:
    a.append(n % 10)  # берем последнюю цифру числа и добавляем ее в список
    n //= 10  # убираем последнюю цифру числа

a.reverse()
print(a)  # -> [1, 2, 3, 4, 5]
→ Ссылка
Автор решения: SergFSM

для разнообразия еще один способ, рекурсивный (n=int(n)):

def f(n):
    return [n] if n<10 else f(n//10) + [n%10]

#
f(1234567890)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
→ Ссылка
Автор решения: Qwertiy

https://ideone.com/sJ0m6C

a = [int(x) for x in input()]
print(a)

b = map(int, input())
print(*b)

Во втором случае получается не список, зато смотрится прикольно.

→ Ссылка