преобразовать -3 из строки в список python
На вход подается строка '0 -3 1'.
Когда я пытаюсь привести ее к списку получается это a = ['0','-', '3','1'].
Мне нужно чтобы это имело вид a = [0,-3,1].
Подскажите пожалуйста.
Мой код:
a = list(input())
a.remove(' ')
a.remove(' ')
print(a)
Ответы (1 шт):
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()))