- Как удалить символ из строки Python: инструкция
- Удаление символа по индексу
- Как удалить символ из строки с помощью цикла
- Как удалить символы с помощью среза
- replace()
- translate()
- Регулярные выражения
- join()
- Заключение
- How To Remove Characters from a String in Python
- Remove Characters From a String Using the replace() Method
- Remove Newline Characters From a String Using the replace() Method
- Remove a Substring from a String Using the replace() Method
- Remove Characters a Specific Number of Times Using the replace() Method
- Remove Characters From a String Using the translate() Method
- Remove Multiple Characters From a String using the translate() method
- Remove Newline Characters From a String Using the translate() Method
- Conclusion
Как удалить символ из строки Python: инструкция
В текстах часто встречаются символы, которые мешают корректной обработке информации. Например, в социальных сетях часто используются смайлы, которые могут мешать анализу текста. В таких случаях удаление символов из строки необходимо для правильной обработки информации. В Python существует несколько способов удаления символов из строк, которые рассмотрим в этой статье.
Удаление символа по индексу
В этом разделе мы рассмотрим способы удаления символов из строки по индексам, а именно:
Как удалить символ из строки с помощью цикла
Вы можете удалить символ из строки в Python, используя цикл:
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)
В этом примере мы хотим удалить из строки символ «0» c индекс 8. Для этого мы используем цикл for для прохода по символам строки my_string . Затем мы проверяем, совпадает ли i с переменной index , на котором находится элемент, который мы хотим удалить. Если i и index не совпадают, то мы добавляем текущий символ к новой строке result_string . В конце цикла новая строка result_string будет содержать все символы из строки my_string , за исключением символа с индексом 8.
Теперь рассмотрим, как в Python удалить последний символ в строке:
my_string = "Timeweb cloud."
result_string = ""
index = len(my_string)
for i in index-1:
result_string += my_string[i]
print(result_string)
В качестве index можно использовать массив и удалять таким образом не один, а несколько символов:
my_string = "1Timeweb 0cloud"
result_string = ""
index = [0,9]
for i in range(len(my_string)):
if i not in index:
result_string += my_string[i]
print(result_string)
Работа этого отрывка кода аналогична предыдущему, за исключением того, что в этот раз мы проверяем, содержит ли index число i . К слову, точно таким же образом мы можем удалять конкретные символы:
my_string = "1Timeweb 0cloud"
result_string = ""
index = ["0","1"]
for i in my_string:
if i not in index:
result_string += i
print(result_string)
Как удалить символы с помощью среза
Чтобы удалить символы из строки в Python по индексу, можно использовать срезы (slices). Срезы позволяют выбрать часть строки по начальному и конечному индексу. Если вы хотите удалить символы из строки, вы можете воспользоваться срезом.
Например, чтобы удалить символ в строке my_string с индексом n , можно использовать следующую конструкцию:
my_string = my_string[:n] + my_string[n+1:]
Эта конструкция создает новую строку, состоящую из части строки my_string до индекса n , после чего добавляет часть строки my_string после индекса n+1 . Это эквивалентно удалению символа с индексом n :
my_string = "Timeweb 0cloud"
n =8
my_string = my_string[:n] + my_string[n+1:]
print(my_string)
Также с помощью срезов можно удалить несколько подряд идущих символов. Например, чтобы удалить символы с индекса n по m , используйте такую конструкцию:
my_string = my_string[:n] + my_string[m+1:]
В результате вы получите новую строку, состоящую из начальной и конечной частей:
my_string = "Timeweb1111 0 cloud"
n = 7
m = 12
my_string = my_string[:n] + my_string[m+1:]
print(my_string)
replace()
Метод replace() позволяет заменить одни символы в строке на другие. В качестве замены может выступать пустая строка, что будет эквивалентно удалению. Например:
my_string = "Timeweb1111 cloud"
my_string = my_string.replace("1","")
print(my_string)
Чтобы удалить несколько разных символов из строки с помощью replace() , вы можете вызвать этот метод несколько раз, передав в качестве аргументов разные символы. Например:
my_string = "Timeweb1111 0000cloud"
my_string = my_string.replace("1", "").replace("0", "")
print(my_string)
Вы также можете использовать цикл for и функцию replace() , чтобы удалить несколько символов из строки. Например:
my_string = "Timeweb1111 0000cloud"
chars_to_remove = ["1", "0"]
for char in chars_to_remove:
my_string = my_string.replace(char, "")
print(my_string)
translate()
Для удаления символа из строки в Python вы можете использовать метод translate() .
Метод принимает на вход словарь или таблицу перевода и заменяет, в соответствии с входными аргументами, символы в строке. Чтобы удалить символ, вы можете указать пустую строку в качестве значения для этого символа.
Например, это может быть полезно, чтобы удалить сразу несколько символов:
def remove_commas(string):
trans_table =
return string.translate(trans_table)
my_string = "В этой, строке, нет: знаков препинания."
print(remove_commas(my_string))
В этой строке нет знаков препинания
Регулярные выражения
Чтобы удалить символы из строки с помощью регулярных выражений в Python, вы можете использовать метод re.sub() . Этот метод, как и два предыдущих, заменяет символы в строке. На вход он принимает три аргумента: регулярное выражение, строку замены и исходную строку. В качестве результата метод возвращает новую строку, в которой все совпадения регулярного выражения будут заменены. Если нужно удалить символы из строки, то можно использовать пустую строку в качестве строки замены.
Например, этот код удалит все цифры из строки:
import re
my_string = "Hello, World! 123"
my_string = re.sub(r'\d', '', my_string)
print(my_string)
Регулярное выражение \d соответствует любой цифре. Поэтому метод re.sub() заменяет каждую цифру в my_string пустой строкой.
Вы можете также использовать регулярные выражения, чтобы удалить другие типы символов. Например, чтобы оставить в строке только цифры и буквы, можно воспользоваться регулярным выражением \W . Оно соответствует любому символу, который не является буквой или цифрой.
Вот пример, как вы можете использовать это:
import re
string = "Hello, World! 123"
string = re.sub(r'\W', '', string)
print(string)
join()
Последняя функция Python, с помощью которой мы будем удалять символы из строки — join() .
На вход метод join() принимает итерируемые объекты, которыми являются в том числе и строки, и объединяет их в строку. Обычно этот метод применяется для объединения списка в одну строку, но мы воспользуемся им для удаления символа. Например, удалим из строки все цифры с помощью join() :
my_string = '1czech2, prague3'
numbers = "123456789"
result_string = ''.join([char for char in my_string if char not in numbers])
print(result_string)
В этом примере на основе строки my_string создается список из символов, который содержит все символы, кроме цифр. Затем метод join() объединяет элементов списка в одну строку. В результате получается строка czech, prague , в которой все вхождения цифр удалены.
Заключение
В этой статье мы рассмотрели различные способы удаления символов из строки в языке Python. Выделять один конкретный метод из всех перечисленных не имеет смысла. В зависимости от условий стоящей перед вами задачи и потребностей, разные методы будут демонстрировать разную эффективность. Так, например, метод replace() будет наиболее удобен в простых случаях, а регулярные выражения подойдут для более сложных ситуаций.
How To Remove Characters from a String in Python
This article describes two common methods that you can use to remove characters from a string using Python:
To learn some different ways to remove spaces from a string in Python, refer to Remove Spaces from a String in Python.
A Python String object is immutable, so you can’t change its value. Any method that manipulates a string value returns a new String object.
The examples in this tutorial use the Python interactive console in the command line to demonstrate different methods that remove characters.
Remove Characters From a String Using the replace() Method
The String replace() method replaces a character with a new character. You can remove a character from a string by providing the character(s) to replace as the first argument and an empty string as the second argument.
Declare the string variable:
Replace the character with an empty string:
The output shows that both occurrences of the character a were removed from the string.
Remove Newline Characters From a String Using the replace() Method
Declare a string variable with some newline characters:
Replace the newline character with an empty string:
The output shows that both newline characters ( \n ) were removed from the string.
Remove a Substring from a String Using the replace() Method
The replace() method takes strings as arguments, so you can also replace a word in string.
Declare the string variable:
Replace a word with an empty string:
The output shows that the string Hello was removed from the input string.
Remove Characters a Specific Number of Times Using the replace() Method
You can pass a third argument in the replace() method to specify the number of replacements to perform in the string before stopping. For example, if you specify 2 as the third argument, then only the first 2 occurrences of the given characters are replaced.
Declare the string variable:
Replace the first two occurrences of the character with the new character:
The output shows that the first two occurrences of the a character were replaced by the A character. Since the replacement was done only twice, the other occurrences of a remain in the string.
Remove Characters From a String Using the translate() Method
The Python string translate() method replaces each character in the string using the given mapping table or dictionary.
Declare a string variable:
Get the Unicode code point value of a character and replace it with None :
The output shows that both occurrences of the b character were removed from the string as defined in the custom dictionary.
Remove Multiple Characters From a String using the translate() method
You can replace multiple characters in a string using the translate() method. The following example uses a custom dictionary, , that replaces all occurrences of a , b , and c in the given string with None .
Declare the string variable:
Replace all the characters abc with None :
The output shows that all occurrences of a , b , and c were removed from the string as defined in the custom dictionary.
Remove Newline Characters From a String Using the translate() Method
You can replace newline characters in a string using the translate() method. The following example uses a custom dictionary, , that replaces all occurrences of \n in the given string with None .
Declare the string variable:
Replace all the \n characters with None :
The output shows that all occurrences of the newline character \n were removed from the string as defined in the custom dictionary.
Conclusion
In this tutorial, you learned some of the methods you can use to remove characters from strings in Python. Continue your learning about Python strings.
Want to deploy your application quickly? Try Cloudways, the #1 managed hosting provider for small-to-medium businesses, agencies, and developers — for free. DigitalOcean and Cloudways together will give you a reliable, scalable, and hassle-free managed hosting experience with anytime support that makes all your hosting worries a thing of the past. Start with $100 in free credits!