- Как срезать строки в Python?
- Как срезать строки в Python?
- Введение
- Способы нарезать строки в Python
- Строки нарезки в Python – примеры
- 1. Строки нарезки в Python с началом и концом
- 2. Струки срез, используя только начало или конец
- 3. Строки нарезки в Python со ступенчатым параметром
- 4. Реверсируя строку с помощью нарезки в Python
- Заключение
- использованная литература
- Читайте ещё по теме:
- Python обрезать строку до длины
- # Table of Contents
- # Truncate a string in Python
- # Truncate a string with an ellipsis in Python
- # Creating a reusable function
- # Truncate a string using a formatted string literal
- # Truncate a string using str.rsplit()
- # Truncate a string using textwrap.shorten()
- # Truncate a string using str.format()
- # Additional Resources
Как срезать строки в Python?
В этом руководстве мы собираемся узнать, как мы можем нарезать строки в Python.
Как срезать строки в Python?
Введение
В этом руководстве мы собираемся узнать, как мы можем нарезать строки в Python.
Python поддерживает нарезку струн. Это создание новой подкрандки из заданной строки на основе заданного пользовательских начальных и окончательных индексов.
Способы нарезать строки в Python
Если вы хотите нарезать строки в Python, это будет так же просто, как эта одна строка ниже.
res_s = s[ start_pos:end_pos:step ]
- RES_S хранит возвращенную суб-строку,
- S данная строка,
- start_pos является начальным индексом, из которого нам нужно нарезать строку S,
- End_Pos является окончательным индексом, прежде чем закончится операция нарезки,
- шаг Является ли шаги Процесс нарезка от START_POS в End_Pos.
Примечание : Все вышеперечисленные три параметра являются необязательными. По умолчанию start_pos установлен на 0 , End_Pos считается равным длине строки, а шаг установлен на 1 Отказ
Теперь давайте возьмем некоторые примеры, чтобы понять, как лучше понять строки в Python.
Строки нарезки в Python – примеры
Струны нарезки Python могут быть сделаны по-разному.
Обычно мы получаем доступ к строковым элементам (символам) с помощью простой индексации, которая начинается с 0 до N-1 (n – длина строки). Следовательно, для доступа к 1-й Элемент строки string1 Мы можем просто использовать код ниже.
Опять же, есть еще один способ получить доступ к этим персонажам, то есть используя Отрицательная индексация Отказ Отрицательная индексация начинается с -1 к -n (n – длина для данной строки). Примечание, отрицательная индексация выполняется с другого конца строки. Следовательно, для доступа к первому символу на этот раз нам нужно следовать указанному ниже коду.
Теперь давайте рассмотрим некоторые способы, следующие, которые мы можем нарезать строку, используя вышеуказанную концепцию.
1. Строки нарезки в Python с началом и концом
Мы можем легко нарезать данную строку, упомянувая начальные и окончательные индексы для желаемой подковы, которую мы ищем. Посмотрите на приведенный ниже пример, он объясняет нарезку строк, используя начальные и окончательные индексы для обычной, так и для негативного метода индексации.
#string slicing with two parameters s = "Hello World!" res1 = s[2:8] res2 = s[-4:-1] #using negative indexing print("Result1 = ",res1) print("Result2 wp-block-codemirror-blocks-code-block code-block">"> Result1 = llo Wo Result2 = rld
- Мы инициализируем строку, S как “Привет мир!” ,
- Сначала мы нарезаем данную строку с начальным индексом 2 и окончание индекса как 8 Отказ Это означает, что результирующая подконта будет содержать символы из S [2] к S 8 ,
- Аналогично, для следующего, результирующая подкора должна содержать символы из S [-4] к S [(- 1) -1] Отказ
Следовательно, наш выход оправдан.
2. Струки срез, используя только начало или конец
Как упоминалось ранее, все три параметра для нарезки строки являются необязательными. Следовательно, мы можем легко выполнить наши задачи с использованием одного параметра. Посмотрите на код ниже, чтобы получить четкое понимание.
#string slicing with one parameter s1= "Charlie" s2="Jordan" res1 = s1[2:] #default value of ending position is set to the length of string res2 = s2[:4] #default value of starting position is set to 0 print("Result1 = ",res1) print("Result2 wp-block-codemirror-blocks-code-block code-block">"> Result1 = arlie Result2 = Jord
- Сначала инициализируем две строки, S1 и S2 ,
- Для нарезки их обоих мы просто упомяну о start_pos Для S1 и End_Pos только для S2,
- Следовательно, для RES1 , он содержит подконтную строку S1 из индекса 2 (как упоминалось) до последнего (по умолчанию он устанавливается на N-1). Принимая во внимание, что для RES2 диапазон индексов лежит от 0 до 4 (упомянутых).
3. Строки нарезки в Python со ступенчатым параметром
шаг Значение решает прыжок операции нарезки займет из одного индекса к другому. Посмотрите на пример ниже.
#string slicing with step parameter s= "Python" s1="Kotlin" res = s[0:5:2] res1 = s1[-1:-4:-2] #using negative parameters print("Resultant sliced string = ",res) print("Resultant sliced string(negative parameters) wp-block-codemirror-blocks-code-block code-block">"> Resultant sliced string = Pto Resultant sliced string(negative parameters) = nl
- Мы инициализируем две строки S и S1 и попытайтесь нарезать их за данные начальные и окончательные индексы, как мы сделали для нашего первого примера,
- Но на этот раз мы упомянули шаг значение, которое было установлено на 1 по умолчанию для предыдущих примеров,
- Для RES, имеющих размер шага 2 означает, что, в то время как прохождение для получения подстроки от индекса от 0 до 4, каждый раз, когда индекс будет увеличен по значению 2. То есть первый символ S [0] («P») следующие символы в подпологе будут S [0 + 2] и S [2 + 2] до тех пор, пока индекс не будет меньше 5.
- Для следующего я. RES1 Упомянутый шаг (-2). Следовательно, похоже на предыдущий случай, персонажи в подстроке будут S1 [-1] Тогда S1 [(- 1) + (- 2)] или S1 [-3] до тех пор, пока индекс не будет меньше (-4).
4. Реверсируя строку с помощью нарезки в Python
С использованием отрицательной индексной строки нарезки в Python мы также можем поменять строку и хранить ее в другой переменной. Для этого нам просто нужно упомянуть шаг Размер (-1) Отказ
Давайте посмотрим, как это работает в приведенном ниже примере.
#reversing string using string slicing s= "AskPython" rev_s = s[::-1] #reverse string stored into rev_s print(rev_s)
Как мы видим, строка S обращается и хранится в Rev_s Отказ Примечание : Для этого тоже исходная строка остается неповрежденной и нетронутой.
Заключение
Таким образом, в этом руководстве мы узнали о методологии строки нарезки и ее различных форм. Надеюсь, читатели оказали четкое понимание темы.
Для любых дополнительных вопросов, связанных с этой темой, не стесняйтесь использовать комментарии ниже.
использованная литература
Читайте ещё по теме:
Python обрезать строку до длины
Last updated: Feb 21, 2023
Reading time · 4 min
# Table of Contents
# Truncate a string in Python
Use string slicing to truncate a string, e.g. result = my_str[:5] . The slice returns the first N characters of the string.
Ellipsis can be added to the end of the substring if the string is longer than the slice.
Copied!my_str = 'bobbyhadz.com' result = my_str[:5] print(result) # 👉️ bobby
We used string slicing to truncate a string.
The syntax for string slicing is my_str[start:stop:step] .
Python indexes are zero-based, so the first character in a string has an index of 0 , and the last character has an index of -1 or len(my_str) - 1 .
The stop index is exclusive (up to, but not including), so the slice returns the first N characters of the string.
Copied!my_str = 'bobbyhadz.com' result = my_str[:5] print(result) # 👉️ bobby
The example returns a substring containing the first 5 characters of the string.
# Truncate a string with an ellipsis in Python
You can use the ternary operator to add an ellipsis if the string is longer than the slice.
Copied!my_str = 'bobbyhadz.com' result = my_str[:5] + '. ' if len(my_str) > 5 else my_str print(result) # 👉️ bobby.
The expression to the left of the if statement is returned if the condition is met, otherwise, the string gets returned as is.
# Creating a reusable function
If you have to do this often, define a reusable function.
Copied!def truncate_string(string, length, suffix='. '): return string[:length] + suffix print(truncate_string('bobbyhadz.com', 3)) # bob. print(truncate_string('bobbyhadz.com', 5)) # bobby. print(truncate_string('bobbyhadz.com', 7)) # bobbyha.
The function takes a string, the desired length and optionally a suffix as parameters and truncates the given string to the specified length.
# Truncate a string using a formatted string literal
Alternatively, you can use a formatted string literal.
Copied!my_str = 'bobbyhadz.com' result = f'my_str:.5>' print(result) # 👉️ bobby result = f'my_str:.5>". " if len(my_str) > 5 else "">' print(result) # 👉️ bobby.
Formatted string literals (f-strings) let us include expressions inside of a string by prefixing the string with f .
Copied!var1 = 'bobby' var2 = 'hadz' result = f'var1>var2>' print(result) # 👉️ bobbyhadz
Make sure to wrap expressions in curly braces - .
Formatted string literals also enable us to use the format specification mini-language in expression blocks.
Copied!my_str = 'bobbyhadz.com' result = f'my_str:.5>' print(result) # 👉️ bobby
The digit after the period is the maximum size of the string.
The example formats the string to a maximum of 5 characters.
You can use the ternary operator to add an ellipsis if the string is longer than the slice.
Copied!my_str = 'bobbyhadz.com' result = f'my_str:.5>". " if len(my_str) > 5 else "">' print(result) # 👉️ bobby.
# Truncate a string using str.rsplit()
If you need to remove the last word from a string, use the str.rsplit() method.
Copied!my_str = 'bobby hadz com' new_str = my_str.rsplit(' ', 1)[0] print(new_str) # 👉️ 'bobby hadz'
The str.rsplit method returns a list of the words in the string using the provided separator as the delimiter string.
Copied!my_str = 'bobby hadz com' print(my_str.rsplit(' ')) # 👉️ ['bobby', 'hadz', 'com'] print(my_str.rsplit(' ', 1)) # 👉️ ['bobby hadz', 'com']
The method takes the following 2 arguments:
Name | Description |
---|---|
separator | Split the string into substrings on each occurrence of the separator |
maxsplit | At most maxsplit splits are done, the rightmost ones (optional) |
If you need to remove the last 2 words from a string, set the maxsplit argument to 2 and access the list item at index 0 .
Copied!my_str = 'bobby hadz com' # 👇️ remove last word from string result = my_str.rsplit(' ', 1)[0] print(result) # 👉️ bobby hadz # 👇️ remove last 2 words from string result = my_str.rsplit(' ', 2)[0] print(result) # 👉️ bobby
The maxsplit argument can be set to split the string at most N times from the right.
# Truncate a string using textwrap.shorten()
You can also use the textwrap.shorten() method to truncate a string.
Copied!import textwrap a_string = 'bobby hadz com one two three' new_string = textwrap.shorten(a_string, width=8, placeholder='') print(new_string) # 👉️ bobby new_string = textwrap.shorten(a_string, width=8, placeholder='. ') print(new_string) # 👉️ bobby. new_string = textwrap.shorten(a_string, width=15, placeholder='. ') print(new_string) # 👉️ bobby hadz.
The textwrap.shorten method takes a string, the max width of the string and a placeholder as parameter and truncates the string.
The method collapses and truncates the string to fit in the given width.
Note that the placeholder is included in the width of the string.
Copied!import textwrap a_string = 'bobby hadz com one two three' new_string = textwrap.shorten(a_string, width=5, placeholder='. ') print(new_string) # 👉️ .
The first word + the placeholder exceeds the specified max width of 5 , so only the placeholder is returned.
The textwrap.shorten() method:
- Collapses the whitespace (replaces multiple, consecutive spaces with a single space).
- If the result fits in the specified width, it is returned.
- Otherwise, enough words are dropped from the end of the string so that the remaining words plus the placeholder fit within the specified width .
# Truncate a string using str.format()
You can also use the str.format() method to truncate a string.
Copied!a_string = 'bobby hadz com one two three' new_str = ''.format(a_string) print(new_str) # 👉️ bobby new_str = ''.format(a_string) print(new_str) # 👉️ bobby h new_str = ''.format(a_string) print(new_str) # 👉️ bob
The digit after the period is used to specify how many characters are going to be used from the string.
The str.format method performs string formatting operations.
Copied!first = 'bobby' last = 'hadz' result = "Name: <> <>".format(first, last) print(result) # 👉️ "Name: bobby hadz"
The string the method is called on can contain replacement fields specified using curly braces <> .
You can use the ternary operator if you need to add an ellipsis if the string has a length of more than N.
Copied!a_string = 'bobby hadz com one two three' new_str = ''.format(a_string) + ". " if len(a_string) > 5 else "" print(new_str) # 👉️ bobby.
The string in the example has more than 5 characters, so the if statement runs and an ellipsis is added at the end.
Want to learn more about truncating strings in Python ? Check out these resources: Get the first N characters of a String in Python ,Remove the last N characters from a String in Python.
# Additional Resources
You can learn more about the related topics by checking out the following tutorials:
I wrote a book in which I share everything I know about how to become a better, more efficient programmer.