- Как удалить пробелы из строки в Python
- strip()
- replace()
- join() с split()
- translate()
- Python удаляет пробелы из строки с помощью Regex
- Как удалять пробелы в Python и форматировать их
- Удаление пробелов в начале и конце строки со strip()
- Замена всех знаков с replace()
- Удаление с join и split
- Использование translate()
- Использование регулярных выражений
- Python strip() – How to Trim a String or Line
- How to trim a string in Python
- How to Remove Leading and Trailing Whitespace from Strings in Python
- How to Remove Leading and Trailing Characters from Strings in Python
- How to Remove Only Leading Whitespace and Characters from Strings in Python
- How to Remove only Trailing Whitespace and Characters from Strings in Python
- Conclusion
Как удалить пробелы из строки в Python
Есть несколько способов удалить пробелы из строки в Python. Python String неизменяем, поэтому мы не можем изменить его значение. Любая функция, которая управляет строковым значением, возвращает новую строку, и мы должны явно назначить ее строке, иначе строковое значение не изменится.
Допустим, у нас есть пример строки, определенной как:
s = ' Hello World From Pankaj \t\n\r\tHi There '
Эта строка имеет разные типы пробелов, а также символы новой строки.
Давайте посмотрим на различные функции для удаления пробелов.
strip()
Строковая функция strip() удаляет начальные и конечные пробелы.
>>> s.strip() 'Hello World From Pankaj \t\n\r\tHi There'
Если вы хотите удалить только начальные или конечные пробелы, используйте вместо них функцию lstrip() или rstrip().
replace()
Мы можем использовать replace(), чтобы удалить все пробелы из строки. Эта функция также удалит пробелы между словами.
>>> s.replace(" ", "") 'HelloWorldFromPankaj\t\n\r\tHiThere'
join() с split()
Если вы хотите избавиться от всех повторяющихся пробелов и символов новой строки, вы можете использовать функцию join() с функцией string split().
>>> " ".join(s.split()) 'Hello World From Pankaj Hi There'
translate()
Если вы хотите избавиться от всех пробелов, а также от символов новой строки, вы можете использовать строковую функцию translate().
>>> import string >>> s.translate() 'HelloWorldFromPankajHiThere'
Python удаляет пробелы из строки с помощью Regex
Мы также можем использовать регулярное выражение для поиска пробелов и их удаления с помощью функции re.sub().
import re s = ' Hello World From Pankaj \t\n\r\tHi There ' print('Remove all spaces using RegEx:\n', re.sub(r"\s+", "", s), sep='') # \s matches all white spaces print('Remove leading spaces using RegEx:\n', re.sub(r"^\s+", "", s), sep='') # ^ matches start print('Remove trailing spaces using RegEx:\n', re.sub(r"\s+$", "", s), sep='') # $ matches end print('Remove leading and trailing spaces using RegEx:\n', re.sub(r"^\s+|\s+$", "", s), sep='') # | for OR condition
Remove all spaces using RegEx: HelloWorldFromPankajHiThere Remove leading spaces using RegEx: Hello World From Pankaj Hi There Remove trailing spaces using RegEx: Hello World From Pankaj Hi There Remove leading and trailing spaces using RegEx: Hello World From Pankaj Hi There
Как удалять пробелы в Python и форматировать их
В Python есть несколько методов удаления пробелов в строках. Методы могут быть использованы при удалении пробелов во всем тексте, начале или конце.
Из-за того что строки являются неизменяемыми объектам каждая операция удаления или замены символов создает новую строку. Что бы сохранить новую строку мы должны будем присвоить ее переменной.
Удаление пробелов в начале и конце строки со strip()
Для удаления пробелов в начале и конце строки можно использовать функцию strip(), как на примере ниже:
string = " My name is \n Alex " string = string.strip()
Для удаления символов в начале текста есть lstrip():
word = " My name is \n Alex " word = word.lstrip()
Противоположная операция — rstrip(), удалит символы только справа:
i = " My name is \n Alex " i = i.rstrip()
Замена всех знаков с replace()
Когда нужно удалить все нужные символы используйте replace():
d = " My name is \n Alex " d = d.replace(' ', '')
В отличие от методов strip с replace можно заменить задвоенные символы:
v = " My name is \n Alex " v = v.replace(' ', '')
Удаление с join и split
Если нужно удалить все пробелы и символы новой строки ‘\n’ можно преобразовать строку в массив (используя пробелы как разделитель) и преобразовать массив обратно в строку уже добавив пробелы между значениями:
n = " My name is \n Alex " n = n.replace(' ', '')
Используем Python Pillow для вставки текста и изображения в картинку
Использование translate()
translate возвращает копию строки в которой все символы будут заменены в соответствии с таблицей. С помощью следующего способа эта операция пройдет с пробелами:
import string s = ' word1 word2 word3' s = s.translate()
Использование регулярных выражений
Используя регулярные выражения мы можем получить каждый из результатов полученных выше. Знак пробела, в регулярных выражениях, обозначается как ‘\s’. Знак ‘+’ говорит об одном или множестве повторений символа. В примере ниже будут заменены все символы пробела:
import re h = ' Hello world 1 2 3' h = re.sub(r'\s+', '', h)
Для замены указанных знаков в начале текста можно использовать знак ‘^’:
import re j = ' Hello world 1 2 3' j = re.sub(r'^\s+', '', j)
Конец текста обозначает знак ‘$’. С помощью его мы заменим нужные символы в конце строки в следующем примере:
import re string = ' Hello world 1 2 3 ' string = re.sub(r'\s+$', '', string)
Используя знак ‘|’, который в регулярных выражения работает как ‘or’, мы сможем заменить символы в начале и конце:
import re string = ' Hello world 1 2 3 ' string = re.sub(r'^\s+|\s+$', '', string)
Python strip() – How to Trim a String or Line
Dionysia Lemonaki
In this article, you’ll learn how to trim a string in Python using the .strip() method.
You’ll also see how to use the .lstrip() and .rstrip() methods, which are the counterparts to .strip() .
How to trim a string in Python
Python has three built-in methods for trimming leading and trailing whitespace and characters from strings.
Each method returns a new trimmed string.
How to Remove Leading and Trailing Whitespace from Strings in Python
When the .strip() method has no argument, it removes any leading and/or trailing whitespace from a string.
So, if you have whitespace at the start and/or end of a word or phrase, .strip() alone, by default, will remove it.
The following variable greeting has the string «Hello» stored in it. The string has space both to the right and left of it.
greeting = " Hello! " print(greeting,"How are you?") #output # Hello! How are you?
To remove both of them, you use the .strip() method, like so:
greeting = " Hello! " stripped_greeting = greeting.strip() print(stripped_greeting,"How are you?") #output #Hello! How are you?
You could have also used the .strip() method in this way:
greeting = " Hello! " print(greeting.strip(),"How are you?") #output #Hello! How are you?
How to Remove Leading and Trailing Characters from Strings in Python
The .strip() method takes optional characters passed as arguments.
The characters you add as arguments specify what characters you would like to remove from the start and end of the string.
Below is the general syntax for this case:
The characters you specify are enclosed in quotation marks.
So, for example, say you have the following string:
You want to remove «H» and «?», which are at the beginning and at end of the string, respectively.
To remove them, you pass both characters as arguments to strip() .
greeting = "Hello World?" stripped_greeting = greeting.strip("H?") print(stripped_greeting) #output #ello World
Notice what happens when you want to remove «W» from «World», which is at the middle and not at the start or end of the string, and you include it as an argument:
greeting = "Hello World?" stripped_greeting = greeting.strip("HW?") print(stripped_greeting) #ello World
It will not be removed! Only the characters at the start and end of said string get deleted.
That being said, look at the next example.
Say you want to remove the first two and the last two characters of the string:
phrase = "Hello world?" stripped_phrase = phrase.strip("Hed?") print(stripped_phrase) #output #llo worl
The first two characters («He») and the last two («d?») of the string have been removed.
Another thing to note is that the argument does not remove only the first instance of the character specified.
For example, say you have a string with a few periods at the beginning and a few exclamation marks at the end:
When you specify as arguments . and ! , all instances of both will get removed:
phrase = ". Python . " stripped_phrase = phrase.strip(".!") print(stripped_phrase) #output #Python
How to Remove Only Leading Whitespace and Characters from Strings in Python
To remove only leading whitespace and characters, use .lstrip() .
This is helpful when you want to remove whitespace and characters only from the start of the string.
An example for this would be removing the www. from a domain name.
domain_name = "www.freecodecamp.org www." stripped_domain = domain_name.lstrip("w.") print(stripped_domain) #output #freecodecamp.org www.
In this example I used the w and . characters both at the start and the end of the string to showcase how .lstrip() works.
If I’d used .strip(w.) I’d have the following output:
The same goes for removing whitespace.
Let’s take an example from a previous section:
greeting = " Hello! " stripped_greeting = greeting.lstrip() print(stripped_greeting,"How are you?" ) #output #Hello! How are you?
Only the whitespace from the start of the string has been removed from the output.
How to Remove only Trailing Whitespace and Characters from Strings in Python
To remove only trailing whitespace and characters, use the .rstrip() method.
Say you wanted to remove all punctuation only from the end of a string.
You would do the following:
enthusiastic_greeting = ". Hello . " less_enthusiastic_greeting = enthusiastic_greeting.rstrip("!") print(less_enthusiastic_greeting) #output #. Hello
Taking again the example from earlier, this time the whitespace would be removed only from the end of the output:
greeting = " Hello! " stripped_greeting = greeting.rstrip() print(stripped_greeting,"How are you?") #output # Hello! How are you?
Conclusion
And there you have it! You now know the basics of how to trim a string in Python.
- Use the .strip() method to remove whitespace and characters from the beginning and the end of a string.
- Use the .lstrip() method to remove whitespace and characters only from the beginning of a string.
- Use the .rstrip() method to remove whitespace and characters only from the end of a string.
If you want to learn more about Python, check out freeCodeCamp’s Python Certification. You’ll start learning in an interacitve and beginner-friendly way. You’ll also build five projects at the end to put into practice and help reinforce what you learned.
Thanks for reading and happy coding!