как написать в одну строку преобразование

my_str = '3 43 34  453  45'

# переводим строку в список и вкладываем его в новую переменную

my_list = list(my_str)

# удаляем из списка пробелы

my_list = [i for i in my_list if i not in [' ']]

# переводим список из строк в список из чисел

my_list = [int(i) for i in my_list]

[3, 4, 3, 3, 4, 4, 5, 3, 4, 5]

подскажите пожалуйста как это преобразование произвести в одну строчку... ну или просто более лаконично


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

Автор решения: Alpensin
my_str = '3 43 34  453  45'
my_list = list(int(i) for i in my_str if i != ' ')
→ Ссылка
Автор решения: Эникейщик

Удаляем пробелы и конвертируем каждый символ в число:

numbers = [int(i) for i in my_str.replace(" ", "")]

Если нужно удалять разные символов, то можно применить регулярные выражения:

import re
numbers =[int(i) for i in re.sub("[ 3]", "", my_str)]

В квадратных скобках символы, которые надо удалить, в данном случае пробел и "3".

→ Ссылка
Автор решения: extrn
my_list = list(map(int, filter(str.isdigit, '3 43 34  453  45')))
→ Ссылка
Автор решения: MaxU

Еще один вариант:

res = [int(i) for i in my_str if i.isdecimal() and i not in "35"]

print(res)
# [4, 4, 4, 4]
→ Ссылка