Как убрать все буквы из строки python
Перейти к содержимому

Как убрать все буквы из строки python

  • автор:

Как удалить все буквы из строки в python?

и я хочу удалить в ней все буквы. Kак мне это сделать без регулярных выражений ?

Отслеживать

10.4k 21 21 золотой знак 25 25 серебряных знаков 53 53 бронзовых знака

задан 6 окт 2020 в 10:13

15 1 1 серебряный знак 3 3 бронзовых знака

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

q = ''.join(i for i in q if not i.isalpha()) 

Отслеживать

ответ дан 6 окт 2020 в 10:15

USERNAME GOES HERE USERNAME GOES HERE

10.4k 21 21 золотой знак 25 25 серебряных знаков 53 53 бронзовых знака

Да, но я не понял как это вывести на экран.

6 окт 2020 в 11:30

@DenMine print(».join(i for i in q if not i.isalpha())) ?

6 окт 2020 в 11:30

А можно ответ сохранить в переменной ?

6 окт 2020 в 11:40

@DenMine Так он же сохраняется в той же переменной q 😉

6 окт 2020 в 12:04

нет.. Я пишу print(z) у меня с буквами принтится..

6 окт 2020 в 12:21

import itertools q = "пар234ус" print(''.join(itertools.filterfalse(str.isalpha, q))) 

Отслеживать

ответ дан 6 окт 2020 в 10:43

407 2 2 золотых знака 11 11 серебряных знаков 39 39 бронзовых знаков

    Важное на Мете
Связанные
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.3.8.5973

Убираем конкретные символы из строки

С поомщью str.replace мы можем менять какие-то символы на другие. Если мы просто хотим убрать какие-то символы, тогда просто заменяем их на пустую строку. str.replace() будет применять замену ко всем найденным совподениям.

s="Hello$ Python3$" s1=s.replace("$", "") print (s1) # Результат: Hello Python3

Если мы можем указать ограничение для количества совпадений, чтобы не убирать все символы.

s="Hello$ Python3$" s1=s.replace("$", "", 1) print (s1) # Результат: Hello Python3$

С помощью ' re.sub '

re. sub (pattern, repl, string, count=0, flags=0)

Возвращает строку, полученную путем замены крайних левых неперекрывающихся
совпадений с шаблоном в строке на значение repl. Если совпадения с шаблоном
не найдены, возвращается неизмененная строка
— Из документации Python'а

Если мы хотим убрать символы, то просто заменяем совпадения на пустую строку.

s="Hello$@& Python3$" import re s1=re.sub("[$|@|&]","",s) print (s1) # Результат: Hello Python3
  • Заменяемый шаблон → “[ $ | @ | & ]”
  • [ ] используется для определения множества
  • $ | @ | & → будет искать $ или @ или &
  • Заменяем на пустую строку
  • Если вышеуказанные символы заменяются найдены, то они заменяются на пустую строку

Убрать все символы, кроме букв

С помощью 'isalpha()'

isalpha() используется для того, чтобы проверять, состоит ли строка только из букв. Возвращает True если является буквой. Мы будем проходить по каждому символу строки и проверять является ли он буквой.

Пример

s="Hello$@ Python3&" s1="".join(c for c in s if c.isalpha()) print (s1) # Результат: HelloPython

(c for c in s if c.isalpha())

Перед нами объект генератор, содержащий все буквы из строки:
s1=””.join(c for c in s if c.isalpha())

””.join будет соединять все символы в одну строку.

С помощью 'filter()'

s = "Hello$@ Python3&" f = filter(str.isalpha, s) s1 = "".join(f) print(s1)

f = filter(str.isalpha, s)

Функция filter() будет применять str.isalpha метод для каждого элемента строки, и если получаем истину , то мы возвращаем элемент. В противном случае - пропускаем.

Функция filter() вернет итератор, содержащий все буквы переданной строки, а join() будем "склеиват" все элементы друг с другом.

С помощью 're.sub()'

s = "Hello$@ Python3$" import re s1 = re.sub("[^A-Za-z]", "", s) print (s1) # Результат: HelloPython

Рассмотрим s1 = re.sub(“[^A-Za-z]”, ””, s)

  • “[ A-Za-z]”* → Ищет все символы, кроме букв. Если в начале множества указать * , тогда к шаблону будут подходить все те символы, которые НЕ указаны в множестве. (для русских слов используйте [^А-Яа-я] - прим. ред.)
  • Все символы, удовлетворяющие шаблону будут заменены на пустую строку.
  • Все символы, кроме букв, будут убраны.

Убрать все символы, кроме букв и чисел

С помощью 'isalnum()'

isalnum() используется, когда мы хотим определить состоит строка только из чисел или букв.

Пройдемся по каждому символу строки, что-бы выявить нужные символы.

s = "Hello$@ Python3&" s1 = "".join(c for c in s if c.isalnum()) print(s1) # Результат: HelloPython3

С помощью 're.sub()'

s = "Hello$@ Python3&_" import re s1 = re.sub("[^A-Za-z0-9]", "", s) print(s1) # Результат: HelloPython3
  • “[^A-Za-z0–9]” → Этот шаблон будет искать все символы, кроме букв и цифр.
  • Все найденные символы будут заменены на пустую строку
  • Все символы, кроме букв и цифры убраны.

Убрать все числа из строки, с помощью регулярных выражений

С помощью 're.sub()'

s = "Hello347 Python3$" import re s1 = re.sub("[0-9]", "", s) print(s1) # Результат: Hello Python$
  • [0-9] - цифры от 0 до 9
  • re.sub(“[0–9]”, ””, s) - если есть совпадения, заменяем на пустую строку

Убираем все символы из строки кроме цифр

С помощью 'isdecimal()'

isdecimal() возвращает истину, если все символы строки являются цифрами, в противном случае возвращается ложь.

s = "1-2$3%4 5a" s1 = "".join(c for c in s if c.isdecimal()) print(s1) # Результат: 12345

Пороходим по каждому символу строки и проверяем и является ли он цифрой. "".join() соединяет все элементы.

С помощью 're.sub()'

s = "1-2$3%4 5a" import re s1 = re.sub("[^0-9]", "", s) print(s1) # Результат: 12345

Рассмотрим s1 = re.sub(“[^0–9]”, ””, s)

  • [^0-9] будет искать все символы кроме от 0 до 9
  • re.sub(“[^0–9]”, ””, s) все символы кроме цифр будут заменены на пустую строку.

С помощью 'filter()'

s = "1-2$3%4 5a" f = filter(str.isdecimal, s) s1 = "".join(f) print(s1) # Результат: 12345

Рассмотрим f = filter(str.isdecimal, s)

Функция filter() будет выполнять str.isdecimal метод для каждого символа, если он возвращает истину, то добовляет его в генератор. Затем генератор распаковывается в готовую строку с помощью метода join() .

Примечание

Строки в Python являются неизменяемыми объектами, поэтому все вышеуказаные методы убирает символы из данной строки и возвращает новую, они не меняют состояние оригинальной строки.

Рекомендуем хостинг TIMEWEB

Рекомендуем хостинг TIMEWEB

Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

По статье задано0 вопрос(ов)

Подписка на обсуждение 4
Подписка на раздел 74

Вам это нравится? Поделитесь в социальных сетях!

5 простых способов удалить символ из строки

Существует несколько методов, позволяющих удалить определенный символ из строки:

  • Примитивный метод.
  • Функция replace().
  • Срезы и конкатенация.
  • Метод join() и генератор списков.
  • Метод translate()

Важная деталь — строки в Python неизменяемы. Исходная строка останется нетронутой, а новую вернут методы, о которых написано выше.

Задачи по строкам и решения к ним у нас в телеграм канале PythonTurbo

1. Примитивный метод удаления символа из строки

Суть этого метода проста. Мы пишем цикл и создаем новую пустую строку. Цикл работает так: все символы кроме элемента с индексом n помещаются в новую строку. ( n — индекс элемента, который нам нужно удалить)

input_str = "pythonist" # Выводим в консоль исходную строку print ("Исходная строка: " + input_str) result_str = "" for i in range(0, len(input_str)): if i != 3: result_str = result_str + input_str[i] # Выводим в консоль строку после удаления i-го элемента print ("Строка после удаления i-го элемента: " + result_str)
Исходная строка: pythonist Строка после удаления i-го элемента: pytonist

2. Удаление элемента из строки с помощью метода replace()

str = "pythonist" print ("Исходная строка: " + str) res_str = str.replace('t', '') # Удаление всех 't' print("Строка после удаления всех символов t: " + res_str) # Удаление только первой t res_str = str.replace('t', '', 1) print ("Строка после удаления первого t: " + res_str)
Исходная строка: pythonist Строка после удаления всех символов t: pyhonis Строка после удаления первого t: pyhonist

Мини-задачка для вашей тренировки метода replace()

«Напишите программу на Python для получения строки из заданной строки, в которой все вхождения первого символа заменены на ‘$’, кроме самого первого символа.»

Пример: print(change_char(‘restart’))
»»» resta$t

Решение задачки можно глянуть у нас в канале

3. Удаление символа с помощью срезов и конкатенации

str = "pythonist" print ("Исходная строка: " + str) # Удаляем элемент с индексом 3 # с помощью срезов и объединения res_str = str[:3] + str[4:] print ("Строка после удаления символа: " + res_str
Исходная строка: pythonist Строка после удаления символа: pytonist

4. Удаление символа с помощью метода join() и генераторов списков

Суть этого метода в том, чтобы конвертировать строку в эквивалентный список. После этого все элементы кроме того, который мы собираемся удалить, объединяются в строку.

str = "pythonist" print("Исходная строка: " + str) # Удаление элемента с индексом 2 # с помощью join() и генератора списков res_str = ''.join([str[i] for i in range(len(str)) if i != 2]) print("Строка после удаления символа: " + res_str)
Исходная строка: pythonist Строка после удаления символа: pyhonist

5. Удаление символа из строки с помощью метода translate()

str = 'pythonist123pythonist' print(str.translate())

Как удалить символ из строки в Python

Как удалить символ из строки в Python

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

Важно! Статья предназначена для пользователей, которые знают основы программирования на языке Python.

Работа со строками в Python

Перед тем как приступить к обзору конкретных примеров кода, давайте сделаем краткий обзор ключевых методов, которые мы будем использовать для удаления символов из строк в Python.

Эти методы включают в себя:

  • удаление символа по индексу;
  • методы replace() и translate();
  • регулярные выражения;
  • метод join().

Каждый из этих методов имеет свои особенности и лучше всего подходит для определенных сценариев. Понимание принципов их работы поможет вам выбрать наиболее подходящий инструмент для конкретной задачи и значительно упростит процесс работы со строками в Python.

Удаление символа по индексу

Существует два основных подхода к удалению символа по его индексу:

  • использование цикла;
  • срез строки.

Удаление через цикл

Чтобы удалить символ через цикл, нужно знать его индекс и длину строки. В примере ниже удаляется символ с индексом 8:

my_string = "Timeweb 0 cloud" result_string = "" index = 8 for i in range(len(my_string)): if i != index: result_string += my_string[i] print(result_string)
Timeweb cloud

В этом методе мы создаем новую строку, перебирая символы исходной строки my_string, целиком от нуля. Если индекс текущего символа не совпадает с указанным индексом (index), символ добавляется в result_string. Для этого мы узнаем длину строки при помощи метода len() и если i=8, то пропускаем этот символ.

Это достаточно эффективный метод, но он может быть медленным для очень длинных строк, так как требует перебора всех символов.

Удаление символа с помощью среза

Срезы позволяют выбрать часть строки по начальному и конечному индексу. Чтобы удалить символ из строки при помощи среза, необходима новая переменная типа string.

Для этого можно использовать следующий синтаксис:

my_string = "Timeweb 0cloud" n =8 my_string = my_string[:n] + my_string[n+1:] print(my_string)
Timeweb cloud
  • my_string[:n] возвращает часть строки до индекса n;
  • my_string[n+1:] возвращает часть строки после индекса n.

Соединяя эти две части, мы получаем новую строку без символа с индексом n.

Расшифровка квадратных скобок:

«название_строки»[«от»:«до»]. И здесь один из параметров может быть пропущен:

  • если пропущен параметр «от», то на его месте по умолчанию это воспринимается как ноль;
  • если пропущен «до», то срез пойдет до конца строки.

Этот метод более эффективен, особенно для больших строк, так как не требует перебора всех символов.

Важно учитывать следующие аспекты:

  • в строках, как и в списках, отсчет начинается с нуля;
  • за индекс можно брать и отрицательное число – в этом случае отсчет пойдет с конца строки.

Оба метода являются стандартными подходами в Python и работают без ошибок. Однако выбор метода зависит от конкретной задачи и размера обрабатываемой строки.

Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей

Использование метода replace()

Метод replace() – это встроенный метод языка Python, который позволяет заменить один символ (или подстроку) на другой. Ниже рассмотрим примеры.

Удаление всех вхождений символа

str = "pythonist" print("Исходная строка: " + str) res_str = str.replace('t', '') print("Строка после удаления всех символов 't': " + res_str)
Исходная строка: pythonist Строка после удаления всех символов 't': pyhonis

Здесь мы заменяем каждое вхождение символа «t» на пустую строку, тем самым убираем его.

Удаление первого вхождения символа

res_str = str.replace('t', '', 1) print("Строка после удаления первого 't': " + res_str)
Строка после удаления первого 't': pyhonist

В этом случае мы удаляем только первое вхождение символа «t». Параметр «1» указывает на количество замен.

Использование метода translate()

Метод translate() похож на replace(), он тоже используется для замены одних символов на другие. Либо он заменяет указанный символ строки на пустоту, тем самым удаляя его. Соответственно, чтобы убрать символ, мы можем заменить его на None.

Удаление одного символа

s = 'abc12321cba' print(s.translate())
bc12321cb

Здесь мы удаляем символ «а», используя метод translate() с параметром None.

Удаление нескольких символов

Также можно убрать и несколько символов из строки, что бывает очень удобно:

print(s.translate())
12321

В этом примере мы удаляем символы «a», «b» и «c», используя генератор словаря для создания соответствующего словаря замен.

С помощью указанных методов можно удалять буквы и цифры. Но иногда также возникает необходимость убрать специальные символы. Например, «@», «» и прочие. Для этого нужны регулярные выражения.

Удаление специальных символов из строки с помощью регулярных выражений

Регулярные выражения в Python предоставляют мощный инструмент для обработки строк, включая удаление специальных символов. Для использования регулярных выражений необходимо сначала импортировать специальную библиотеку, модуль re:

import re

Предположим, у нас есть строка special_string, содержащая различные символы, включая специальные. Чтобы удалить эти специальные символы, используем метод sub() из модуля re:

special_string = "spe@#$ci87al\*&" print("Строка до преобразования: ", special_string) # Использование регулярных выражений с методом sub() normal_string = re.sub("[^A-Za-z0-9]", "", special_string) print("Строка после преобразования: ", normal_string)
special

В этом примере используются следующие параметры:

  • регулярное выражение [^A-Za-z0-9] удаляет все символы, не являющиеся буквами (A-Z, a-z) или цифрами (0-9);
  • знак ^ в начале означает «не включать», что позволяет сохранить только буквы и цифры.

Параметр IGNORECASE не требуется, так как мы уже указали диапазоны как для верхнего, так и для нижнего регистра.

Использование метода join() для удаления символов

Метод join() в Python может быть использован не только для объединения строк, но и для удаления определенных символов из одной строки, основываясь на содержимом другой строки. Для примера возьмем случай, когда мы хотим убрать все цифры из строки.

Это можно сделать следующим образом:

my_string = '1czech2, prague3' numbers = "123456789" # Создание новой строки путём исключения символов из 'numbers' result_string = ''.join(char for char in my_string if char not in numbers) print(result_string)
czech, prague
  • мы используем генератор списка для создания последовательности символов из my_string;
  • при этом исключаем символы, присутствующие в строке numbers;
  • затем метод join() объединяет эти символы в новую строку;
  • логическое выражение if char not in numbers определяет, должен ли символ быть включен в результат.

Этот подход эффективно удаляет все цифры из исходной строки my_string, и создает новую строку result_string, в которой остаются только буквы и другие символы, не входящие в numbers.

Заключение

Каждый из представленных методов имеет свои особенности и преимущества в зависимости от конкретной задачи и характера обрабатываемых данных:

  • циклы и срезы представляют собой базовые подходы, которые лучше всего подходят для простых задач;
  • методы replace() и translate() являются более специализированными и подходят для более сложных задач по обработке строк;
  • регулярные выражения предлагают самый мощный и гибкий инструмент для работы со строками, позволяя выполнять сложные замены и удаления;
  • метод join() в сочетании с генератором списка представляет собой удобный и изящный способ удаления определенных символов из строки.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *