logo

Python | Видаліть розділові знаки з рядка

Багато разів під час роботи з Рядки Python , ми маємо проблему, у якій нам потрібно видалити певні символи з рядків. Це може мати програми попередньої обробки даних у Python .

приклад



  Input:   'Gfg, is best: for ! Geeks ;'   Output:   Gfg is best for Geeks    Explanation:   Here we can observe the difference between input and output we removed all the punctuation from the input and the ways to this is listed below to do that.>

Способи видалення розділових знаків із рядка

Існує багато способів видалити розділові знаки з рядка, але основні з них наведено нижче. Отже, давайте досліджувати їх один за іншим. Нижче наведено методи, які ми розглянемо в цій статті.

Усі команди excel великими літерами
  • Видалення пунктуації з рядка за допомогою перекладу
  • Видалення пунктуації з рядка за допомогою циклу Python
  • Видаліть кому з рядка за допомогою циклу Python
  • Видалити знаки пунктуації з рядка за допомогою регулярного виразу
  • Використання циклу for, пунктуаційного рядка, а не в операторі
  • Видалення пунктуації з рядка за допомогою filter()
  • Використання методу replace().

Видалення пунктуації з рядка за допомогою перекладу

Перші два аргументи за string.translate метод — порожні рядки, а третій вхід — a Список Python розділові знаки, які слід вилучити. Це вказує методу Python усунути пунктуацію з рядка. Це один із найкращі способи видалення розділових знаків із рядка .

Python3








import> string> test_str>=> 'Gfg, is best: for ! Geeks ;'> test_str>=> test_str.translate> >(>str>.maketrans('>', '>', string.punctuation))> print>(test_str)>

>

>

Вихід:

Gfg is best for Geeks>

Видалення пунктуації з рядка за допомогою циклу Python

Це спосіб грубої сили, за допомогою якого можна виконати це завдання. У цьому випадку ми перевіряємо знаки пунктуації за допомогою необробленого рядка, який містить знаки пунктуації, а потім створюємо рядок, видаляючи ці знаки пунктуації.

Python3




# initializing string> test_str>=> 'Gfg, is best : for ! Geeks ;'> # printing original string> print>(>'The original string is : '> +> test_str)> # initializing punctuations string> punc>=> '''!()-[]{};:'',./?@#$%^&*_~'''> # Removing punctuations in string> # Using loop + punctuation string> for> ele>in> test_str:> >if> ele>in> punc:> >test_str>=> test_str.replace(ele, '')> # printing result> print>(>'The string after punctuation filter : '> +> test_str)>

>

>

Вихід:

The original string is : Gfg, is best : for ! Geeks ; The string after punctuation filter : Gfg is best for Geeks>

Часова складність: O(n)
Допоміжні приміщення: O(n), де n – кількість символів у рядку.

Видаліть кому з рядка за допомогою циклу Python

Це грубий спосіб, у який можна виконати це завдання. У цьому випадку ми перевіряємо кому, використовуючи необроблений рядок, який містить коми, а потім створюємо рядок, видаляючи ці коми.

Python3


регулярний вираз Java для



def> remove_commas(string):> >result>=> ''> >for> char>in> string:> >if> char !>=> ','>:> >result>+>=> char> >return> result> > input_string>=> 'GFG, is, the, best.'> output_string>=> remove_commas(input_string)> print>(output_string)>

>

>

Вихід:

GFG is the best>

Видаліть пунктуацію з рядка за допомогою регулярного виразу

Частину заміни розділових знаків також можна виконати за допомогою регулярний вираз . У цьому випадку ми замінюємо всі знаки пунктуації порожнім рядком за допомогою певного регулярного виразу.

Python3




import> re> # initializing string> test_str>=> 'Gfg, is best : for ! Geeks ;'> # printing original string> print>(>'The original string is : '> +> test_str)> # Removing punctuations in string> # Using regex> res>=> re.sub(r>'[^ws]'>, '', test_str)> # printing result> print>(>'The string after punctuation filter : '> +> res)>

>

рекурсія java
>

Вихід:

The original string is : Gfg, is best : for ! Geeks ; The string after punctuation filter : Gfg is best for Geeks>

Використання циклу for, пунктуаційного рядка, а не в операторі

Тут ми побачимо Видалення знаків пунктуації в рядку за допомогою циклу + рядок пунктуації.

Python3




# initializing string> test_str>=> 'Gfg, is best : for ! Geeks ;'> # printing original string> print>(>'The original string is : '> +> test_str)> # initializing punctuations string> punc>=> '''!()-[]{};:'',./?@#$%^&*_~'''> res>=>' '> for> ele>in> test_str:> >if> ele>not> in> punc:> >res>+>=>ele> > # printing result> print>(>'The string after punctuation filter : '> +> res)>

>

>

Вихід

The original string is : Gfg, is best : for ! Geeks ; The string after punctuation filter : Gfg is best for Geeks>

Часова та просторова складність для всіх методів однакові:

скільки тижнів у місяці

Часова складність: O(n)
Допоміжні приміщення: O(n)

Видалення пунктуації з рядка за допомогою filter()

Метод filter() фільтрує елементи послідовності на основі заданої умови.
У цьому випадку ми можемо використати метод filter() і лямбда-функцію, щоб відфільтрувати знаки пунктуації.

Python3




def> remove_punctuation(test_str):> # Using filter() and lambda function to filter out punctuation characters> >result>=> ''.join(>filter>(>lambda> x: x.isalpha()>or> x.isdigit()>or> x.isspace(), test_str))> >return> result> test_str>=> 'Gfg, is best : for ! Geeks ;'> print>(>'The original string is : '> +> test_str)> result>=> remove_punctuation(test_str)> print>(>'The string after punctuation filter : '> +> result)> #This code is contributed by Edula Vinay Kumar Reddy>

jfx java підручник
>

>

Вихід

The original string is : Gfg, is best : for ! Geeks ; The string after punctuation filter : Gfg is best for Geeks>

Часова складність: O(n)
Допоміжні приміщення: O(n)

Видалення пунктуації з рядка за допомогою методу replace().

Імпортуйте модуль string, потім ініціалізуйте вхідний рядок і надрукуйте оригінальний рядок. Перегляньте кожен знак пунктуації в константі пунктуації рядка після того, як він використає метод replace(), щоб видалити кожен знак пунктуації з вхідного рядка. а потім вивести отриманий рядок після видалення розділових знаків.

Python3




import> string> # initializing string> test_str>=> 'Gfg, is best : for ! Geeks ;'> # printing original string> print>(>'The original string is : '> +> test_str)> # Removing punctuations using replace() method> for> punctuation>in> string.punctuation:> >test_str>=> test_str.replace(punctuation, '')> # printing result> print>(>'The string after punctuation filter : '> +> test_str)>

>

>

Вихід

The original string is : Gfg, is best : for ! Geeks ; The string after punctuation filter : Gfg is best for Geeks>

Аналіз часової складності: O(len(string.punctuation) * len(test_str)) оскільки цикл for повторює всі знаки пунктуації в константі string.punctuation, що займає O(len(string.punctuation)) часу.

Аналіз допоміжного простору: O(1) . Оскільки вхідний рядок змінено на місці, тож для збереження результату не потрібен додатковий простір.