Как удалить знаки препинания в Python?

Пользователь

от kennedi_pfeffer , в категории: Python , 2 года назад

Как удалить знаки препинания в Python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от kyleigh_runte , 2 года назад

@kennedi_pfeffer 

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


Например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import string

def remove_punctuation(input_string):
    # Создаем таблицу трансляции, которая заменяет все знаки препинания на пустые строки
    translator = str.maketrans('', '', string.punctuation)

    # Используем таблицу трансляции для удаления знаков препинания из строки
    no_punct = input_string.translate(translator)
    return no_punct

# Пример использования
print(remove_punctuation("Hello, World!"))  # Выведет: "Hello World"


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

Пользователь

от ottilie.farrell , год назад

@kennedi_pfeffer 

В Python можно удалить знаки препинания, используя различные методы и функции. Один из способов - использовать метод .translate() в сочетании с методом .maketrans(). Ниже представлен пример кода, который позволяет удалить все знаки препинания из строки:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import string

def удалить_знаки_препинания(строка):
    знаки_препинания = string.punctuation
    переводной_словарь = строка.maketrans('', '', знаки_препинания)
    return строка.translate(переводной_словарь)

строка = "Привет! Как дела?"
строка_без_знаков_препинания = удалить_знаки_препинания(строка)
print(строка_без_знаков_препинания)


В данном примере мы импортируем модуль string, который содержит строковые величины, такие как string.punctuation, содержащую все знаки препинания. Затем мы определяем функцию удалить_знаки_препинания, которая создает переводной словарь с помощью метода .maketrans() и затем применяет его к строке с помощью метода .translate(). Выводом будет строка без знаков препинания: "Привет Как дела"


Кроме того, вы можете использовать регулярные выражения для удаления знаков препинания. Ниже представлен пример кода с использованием модуля re:

1
2
3
4
5
6
7
8
import re

def удалить_знаки_препинания(строка):
    return re.sub(r'[^ws]', '', строка)

строка = "Привет! Как дела?"
строка_без_знаков_препинания = удалить_знаки_препинания(строка)
print(строка_без_знаков_препинания)


В данном примере мы использовали функцию re.sub() для замены (sub) всех не-цифр и не-буквенных символов ([^ws]) на пустую строку. Выводом будет также строка без знаков препинания: "Привет Как дела"