Необходимо нормализовать строку убрав все дополнительные символы возле слов. python

Есть такая строка:

\"X\" >'Y'> I  \t> 1Z2

Нужно чтобы на выходе получилась такая:

X > Y > I > 1Z2

У меня получается только без пробелов вообще:

s = str(input())
new_s = ''
for i in s:
    if i not in '!\"$%&\\\'*+,-./:;<=?[\\\]^`{|}~\\t\\n\\x0b\\x0c\\r' and i != ' ':
        new_s += i
print(new_s)

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

Автор решения: MaxU

воспользуйтесь str.maketrans() + str.translate():

trans_tab = str.maketrans(dict.fromkeys(list(r'!"$%&\'*+,-./:;<=?[\\]^`{|}~') + ['\t','\n','\x0b','\x0c','\r'], ''))

res = s.translate(trans_tab)

результат:

In [33]: res
Out[33]: 'X >Y> I > 1Z2'
→ Ссылка
Автор решения: dIm0n

Для 3 символов из примера:

s = r""""X" >'Y'> I \t> 1Z2"""

print(s.translate(str.maketrans('', '', r""""'\t""")))

Если же 2 символа надо убрать, а ' заменить на пробелы, то так:

s = r""""X" >'Y'> I \t> 1Z2"""

print(s.translate(str.maketrans("'", " ", r""""\t""")))

Результат 1 варианта:

X >Y> I > 1Z2

Результат 2 варианта:

X > Y > I > 1Z2

В общем, в первые 2 аргумента добавляйте символы, которые надо кастануть друг в друга, а в 3 — удаляемые символы

→ Ссылка