Python: Удаление пунктуации из строки (3 разных способа!)
В этом руководстве вы узнаете, как использовать Python для удаления знаков пунктуации из строки. Вы научитесь удалять пунктуацию из строки Python с помощью метода str.translate()
, метода str.replace()
, популярной библиотеки регулярных выражений re
и, наконец, с помощью циклов for.
Умение работать со строками и манипулировать ими является важным навыком для любого Python-разработчика. Строки, которые вы находите в интернете или в ваших файлах, часто требуют значительной обработки, чтобы их можно было анализировать. Одна из задач, с которыми вы часто будете сталкиваться, - это использование Python для удаления знаков пунктуации из строки.
Содержание
Использование Python для удаления пунктуации из строки с помощью Translate
Один из самых простых способов удалить пунктуацию из строки в Python - использовать метод str.translate()
. Метод translate()
обычно принимает таблицу перевода, которую мы создадим с помощью метода .maketrans()
.
Давайте посмотрим, как мы можем использовать метод .translate()
для удаления пунктуации из строки в Python. Для этого мы импортируем встроенную библиотеку string
, которая поставляется с атрибутом punctuation
.
Метод .maketrans()
здесь принимает три аргумента, первые два из которых - пустые строки, а третий - список знаков пунктуации, которые мы хотим удалить. Это говорит функции заменить всю пунктуацию на None.
Что такое string.punctuation в Python?
Python поставляется со встроенной библиотекой string
, которая включает атрибут string.punctuation
, содержащий многие встроенные знаки пунктуации. Поскольку библиотека встроена, вам не нужно беспокоиться о ее установке.
Если вам интересно, какая пунктуация включена в string.punctuation
, давайте быстро посмотрим:
Использование Python для удаления пунктуации из строки с помощью регулярных выражений (regex)
Библиотека регулярных выражений Python, re, кажется, может делать практически все – включая удаление пунктуации из строки!
Регулярные выражения отличны тем, что поставляются со множеством полезных классов символов, которые позволяют нам выбирать различные типы символов. Например, \w\s
ищет слова или пробелы. Мы можем выбрать противоположное (т.е. все, что не является словом или пробелом) с помощью символа ^
. Это позволяет нам выбрать все, что не является словом или пробелом, что в нашем случае выбирает знаки пунктуации.
Давайте посмотрим, как мы можем использовать regex
для удаления пунктуации в Python:
Это отличный подход, который ищет все, что не является буквенно-цифровым символом или пробелом, и заменяет его пустой строкой, тем самым удаляя его.
Использование Python для удаления пунктуации из строки с помощью str.replace
Метод str.replace()
облегчает замену одного символа. Например, если вы хотите заменить только один знак пунктуации, это было бы простым и понятным решением.
Допустим, вы хотите заменить только символ ! из нашей строки, мы могли бы использовать метод str.replace()
для достижения этой цели. Давайте посмотрим как:
Здесь мы добавили метод .replace()
к нашей строке. Первый параметр - это строка для замены, которая в данном случае является нашим символом !
. Второй параметр - это то, на что его заменить, что в данном случае является пустой строкой.
В следующем примере вы узнаете, как использовать цикл for
для замены всех знаков пунктуации в строке.
Использование Python для удаления пунктуации из строки с помощью цикла for
В предыдущем разделе руководства вы узнали, как использовать метод str.replace()
для удаления одного знака пунктуации. В этом разделе мы повторим этот пример, но используем цикл for
, чтобы удалить каждый знак пунктуации.
Давайте посмотрим, как мы можем сделать это в Python:
Одна из вещей, которую следует отметить здесь, это то, что мы перезаписываем нашу исходную строку. Мы не можем назначить новую строку, так как она будет постоянно заменять саму себя.
Теперь, когда вы изучили несколько методов, давайте посмотрим, какой из этих методов самый быстрый.
Какой самый быстрый способ удалить пунктуацию из строки Python?
В этом руководстве вы изучили три различных метода удаления пунктуации из строки в Python. Давайте посмотрим, какой из этих методов самый быстрый.
Для этого теста мы создали строку длиной более 1,000,000,000 символов и удалили всю пунктуацию из строки с помощью Python.
Какой самый быстрый способ удалить пунктуацию из строки в Python? Метод str.translate()
является самым быстрым способом удаления пунктуации из строки в Python – иногда до 40 раз быстрее!
Конечно, скорость - это не все, но поиск кода, который значительно замедляет вашу программу, часто приводит к худшему пользовательскому опыту.
Часто задаваемые вопросы
Заключение
В этой статье вы узнали, как удалить пунктуацию из строки Python. Вы узнали, как это сделать с помощью метода str.translate()
, а также регулярных выражений. Вы также узнали, как это сделать с помощью метода .replace()
, а также с помощью цикла for
. Наконец, вы узнали, какой из этих методов самый быстрый.
Чтобы узнать больше о методе str.translate()
, ознакомьтесь с официальной документацией здесь.
Дополнительные ресурсы
Чтобы узнать больше о связанных темах, ознакомьтесь с руководствами ниже:
Last updated