Ввести строчную величину, состоящую из букв, цифр и арифметических операций. Удалить из этой строки цифры и знаки арифметических операций

мои попытки:

x = 'fdgujndniogf2134+-123'
print (''.join([y for y in x if y.isdigit()]))
  • выводит только цифры, не повторяющиеся так же пытался через функцию re но не получалось

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

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

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 означает заглавные буквы. То же самое и с русским алфавитом, но ё Ё нужно написать отдельно, они не попадают в а-я А-Я.

[] позволяет захватить сразу несколько диапазонов.

^ инверсирует(меняет на противоположное) всё, что находится в [].

То есть под этот шаблон попадает всё, кроме(^) заглавных и строчных букв английского и русского алфавитов.

→ Ссылка
Автор решения: Andrei

Если я правильно понял задание то это можно сделать вот так:

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)
→ Ссылка