преобразовать -3 из строки в список python

На вход подается строка '0 -3 1'.
Когда я пытаюсь привести ее к списку получается это a = ['0','-', '3','1'].
Мне нужно чтобы это имело вид a = [0,-3,1].
Подскажите пожалуйста.

Мой код:

a = list(input()) 
a.remove(' ') 
a.remove(' ') 
print(a)

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

Автор решения: Alexey Loskutov

input() возвращает строку, а простой кастинг строки в список (list()) разбивает строку побуквенно (то же самое происходит если обращаться со строкой как со списком: слайсить str[5:8], обходить for c in str, итд).

как правильно подсказали в комментариях, вам нужно разделить строку по пробелам:

input().split()

но там в конце строки может быть перевод строки или пробел, поэтому сначала их удалим:

input().strip().split()

теперь получился список строк, вроде ['0','-3','1'],
сделаем из них числа: нужно применить int() к каждому элементу массива, это и делает map:

map(int, input().strip().split()))

ну и поскольку map() возвращает итератор, сделаем из него список

list(map(int, input().strip().split()))
→ Ссылка