Как разбить целое число и вернуть его в виде списка

Я изучаю Python, и я хотел знать, как преобразовать входной n = 123 в список [1,2,3]

Это код, который у меня есть, и я получаю ошибки:

def digitize(n):
  return n.split()

Моя ошибка:

AttributeError: 'int' object has no attribute 'split'

Обновлено: этот вопрос является дубликатом

print([int(i) for i in str(n)])?
Rakesh 31.10.2018 11:41

как вы передаете свой вклад? вы используете input()?

Ma0 31.10.2018 11:47
1
2
1 434
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

В Python split - это метод строк, а не целых чисел.

Сначала преобразуйте целое число в строку, а затем преобразуйте его в список символов:

list(str(123)) # ['1', '2', '3']

Затем вы можете снова сопоставить каждый элемент с int:

list(map(int,list(str(123))))  # [1, 2, 3]
Ответ принят как подходящий

Вы можете сделать так:

n = 1234
mylist = [int(x) for x in str(n)]

Вы можете сделать что-то вроде этого:

def digitize(n):
    return [int(d) for d in str(n)]


print(digitize(123))

Выход

[1, 2, 3]

Сначала преобразуйте его в строку, используя ул., затем переберите символы строки (цифры) и преобразуйте каждый обратно в целое число. В качестве альтернативы вы также можете использовать карта, например:

return [e for e in map(int, str(n))]

Или, как указал @ Ev.Kounis, вы можете просто сделать:

return list(map(int, str(n)))

Спасибо, это отлично работает

Bill Kariri 31.10.2018 11:47

return [e for e in map(int, str(n))] слишком многословен. return list(map(int, str(n))) тоже подойдет.

Ma0 31.10.2018 11:48

Другие вопросы по теме