Ввести строчную величину, состоящую из букв, цифр и арифметических операций. Удалить из этой строки цифры и знаки арифметических операций
мои попытки:
x = 'fdgujndniogf2134+-123'
print (''.join([y for y in x if y.isdigit()]))
- выводит только цифры, не повторяющиеся так же пытался через функцию re но не получалось
Ответы (2 шт):
Python. Через регулярные выражения
import re
x = 'fdgujndniogf2134+-123'
result = re.sub(r'[^A-Za-zЁёА-Яа-я]', '', x)
print(result) # fdgujndniogf
Метод sub меняет все символы из 3 параметра, соответствующие шаблону(1 параметру), на строку из 2 параметра и возвращает переделанную строку. То есть все попадающие под шаблон символы превратятся в пустую строку.
Что обозначает шаблон?
r нужен чтобы \ воспринимался как обычный символ, а не служебный. Здесь ставить r перед шаблоном необязательно, но лучше поставить.
- диапазон символов. Например a-z означает все строчные(маленькие) буквы английского алфавита от a до z включительно. A-Z означает заглавные буквы. То же самое и с русским алфавитом, но ё Ё нужно написать отдельно, они не попадают в а-я А-Я.
[] позволяет захватить сразу несколько диапазонов.
^ инверсирует(меняет на противоположное) всё, что находится в [].
То есть под этот шаблон попадает всё, кроме(^) заглавных и строчных букв английского и русского алфавитов.
Если я правильно понял задание то это можно сделать вот так:
x = 'fdgujndniogf2134+-123'
def letter_filter(s):
result = ""
for item in s:
if item.isalpha():
result += item
return result
print(letter_filter(x))
Или так:
result = ''.join([item for item in x if item.isalpha()])
print(result)