Необходимо нормализовать строку убрав все дополнительные символы возле слов. 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 — удаляемые символы