Чтобы разделить строку в Python с помощью разделителя, вы можете использовать метод split() класса String для этой строки.
Синтаксис
Синтаксис метода String.split():
str.split(separator, maxsplit)
Где:
- str – это строка, которую нужно разделить.
- separator – это разделитель, в котором строка разделяется. Если не предусмотрено, то вся строка рассматривается как один фрагмент и возвращается, как элемент в списке.
- maxsplit – это максимальное количество разделений, которое можно сделать. Если не предусмотрено, выполняется максимально возможное разбиение.
Пример 1: если есть фрагменты, разделенные запятыми
В этом примере мы берем строку, в которой есть фрагменты, разделенные запятыми. Мы разделим эту строку, используя запятую в качестве разделителя, и сохраним результат в переменной.
str = 'Python,Examples,Programs,Code,Programming'
chunks = str.split(',')
print(chunks)
Вывод:
['Python', 'Examples', 'Programs', 'Code', 'Programming']
Пример 2: с ограниченным количеством разделений
В этом примере мы берем строку, в которой есть фрагменты, разделенные запятыми. Мы разделим эту строку, используя запятую в качестве разделителя и максимальное количество фрагментов, равное 3.
str = 'Python,Examples,Programs,Code,Programming'
chunks = str.split(',', 3)
print(chunks)
Вывод:
['Python', 'Examples', 'Programs', 'Code,Programming']
Строка делится на три части и, следовательно, получается 4 части.
Пример 3: без аргументов
Если для функции split() не предоставлены аргументы, один или несколько пробелов считаются разделителями, а входная строка разделяется.
В этом примере мы разделим строку на произвольное количество пробелов между частями.
str = ' hello World! Welcome to Python Examples. ' #split function without any arguments splits = str.split() print(splits)
Вывод:
['hello', 'World!', 'Welcome', 'to', 'Python', 'Examples.']
Мы рассмотрели различные скрипты, в которых мы разбивали строку с помощью разных типов разделителей, контролировали количество разбиений и т.д.
Как разбить строку на фрагменты определенной длины?
Чтобы разбить строку на фрагменты определенной длины, используйте функцию «Понимание списка» со строкой. Все фрагменты будут возвращены в виде массива.
Мы также можем использовать цикл while, чтобы разделить список на части определенной длины.
В этом руководстве мы узнаем, как разбить строку на фрагменты определенной длины с помощью подробных примеров программ в Python.
Образец фрагмента кода
Ниже приведен небольшой фрагмент кода для разделения заданной строки str на фрагменты определенной длины n с использованием понимания списка.
n = 3 # chunk length chunks = [str[i:i+n] for i in range(0, len(str), n)]
Пример: разделение строки на части
В этом случае мы возьмем строку str и разделим эту строку на фрагменты длиной 3, используя понимание списка.
str = 'CarBadBoxNumKeyValRayCppSan' n = 3 chunks = [str[i:i+n] for i in range(0, len(str), n)] print(chunks)
Вывод:
['Car', 'Bad', 'Box', 'Num', 'Key', 'Val', 'Ray', 'Cpp', 'San']
Строка разбивается на список строк, каждая из которых имеет длину, как указано, т.е. 3. Вы можете попробовать с другой длиной и разными значениями строки.
Пример: по длине
В этом примере мы разделим строку на фрагменты длиной 4. Кроме того, мы взяли строку, длина которой не делится точно на длину фрагмента. В этом случае последний блок содержит символы, количество которых меньше указанного нами размера блока.
str = 'Welcome to Python Examples' n = 4 chunks = [str[i:i+n] for i in range(0, len(str), n)] print(chunks)
Вывод:
['Welc', 'ome ', 'to P', 'ytho', 'n Ex', 'ampl', 'es']
Пример: с нулевой длиной блока
В этом примере мы протестируем скрипт с размером 0 и проверим вывод. Функция range() вызывает ошибку ValueError, если ее третий аргумент равен нулю.
str = 'Welcome to Python Examples' #chunk size n = 0 chunks = [str[i:i+n] for i in range(0, len(str), n)] print(chunks)
Вывод:
Traceback (most recent call last):
File "example1.py", line 4, in <module>
chunks = [str[i:i+n] for i in range(0, len(str), n)]
ValueError: range() arg 3 must not be zero
Длина блока не должна быть равна нулю, поэтому мы получили ValueError для range().
Пример: с помощью цикла while
В этом примере мы разделим строку на фрагменты с помощью цикла Python While Loop.
str = 'Welcome to Python Examples'
n = 5
chunks = []
i = 0
while i < len(str):
if i+n < len(str):
chunks.append(str[i:i+n])
else:
chunks.append(str[i:len(str)])
i += n
print(chunks)
Вывод:
['Welco', 'me to', ' Pyth', 'on Ex', 'ample', 's']
Мы узнали, как разделить строку по длине в Python с помощью подробных примеров.
С помощью regex
Вы можете разделить строку в Python с разделителем, определяемым регулярным выражением.
В этом примере мы возьмем строку с элементами или словами, разделенными комбинацией подчеркивания и запятой.
Таким образом, разделителем может быть __, _ ,,, _ или ,,. Регулярное выражение для этих разделителей – «[_,] [_,]». [_,] указывает, что символ может соответствовать _ или,.
import re
#a string
str = '63__foo,,bar,_mango_,apple'
#split string into chunks
chunks = re.split('[_,][_,]',str)
#print chunks
print(chunks)
Вывод:
['63', 'foo', 'bar', 'mango', 'apple']
Пример: разделение строки по классу
Классы регулярных выражений – это классы, охватывающие группу символов. Мы будем использовать один из таких классов, \d, который соответствует любой десятичной цифре.
В этом примере мы также будем использовать +, который соответствует одному или нескольким предыдущим символам.
Регулярное выражение ‘\d +’ соответствует одной или нескольким десятичным цифрам. В этом примере мы будем использовать это регулярное выражение для разделения строки на фрагменты, разделенные одной или несколькими десятичными цифрами.
import re
#a string
str = 'foo635bar4125mango2apple21orange'
#split with regular expression
chunks = re.split('\d+',str)
print(chunks)
Вывод:
['foo', 'bar', 'mango', 'apple', 'orange']
Мы узнали, как повторно упаковать строку для разделения с помощью регулярных выражений.
Вы можете разделить строку пробелом в качестве разделителя в Python с помощью метода String.split().
В этом руководстве мы узнаем, как разделить строку пробелом в Python с помощью методов String.split() и re.split().
В этом примере мы возьмем строку, содержащую слова, элементы или фрагменты, разделенные пробелом. Затем мы разделим строку по пробелу с помощью метода String.split(), который возвращает список.
str = '63 41 92 81 69 70'
#split string by single space
chunks = str.split(' ')
print(chunks)
Вывод:
['63', '41', '92', '81', '69', '70']
Разделение строки на один или несколько смежных пробелов
В этом примере мы возьмем строку с фрагментами, разделенными одним или несколькими одиночными пробелами. Затем мы разделим строку с помощью функции re.split().
Мы будем использовать пакет re в следующей программе. re.split (regular_expression, string) возвращает список фрагментов, отделенных от строки на основе regular_expression.
import re
str = '63 41 92 81 69 70'
#split string by single space
chunks = re.split(' +', str)
print(chunks)
Регулярное выражение + представляет собой один или несколько немедленно возникающих пробелов. Таким образом, в качестве разделителя рассматривается один или несколько одиночных пробелов.
Вывод:
['63', '41', '92', '81', '69', '70']
Одно или несколько смежных пробелов считаются одним разделителем из-за регулярного выражения.
Деление любым символом пробела
В этом примере мы разделим строку на части с любым символом пробела в качестве разделителя.
Ниже приведен список символов пробела из таблицы ASCII.
| Шестнадцатеричный код ASCII | Описание |
| 09 | Горизонтальная вкладка |
| 0A | Новый перевод строки |
| 0B | Вертикальная табуляция |
| 0D | Возврат каретки или подача формы |
| 20 | Пробел |
По умолчанию String.split() без переданного аргумента разбивает строку на фрагменты со всеми пробелами в качестве разделителей.
import re str = '63 41\t92\n81\r69 70' #split string by single space chunks = str.split() print(chunks)
Вывод:
['63', '41', '92', '81', '69', '70']
В этом примере мы возьмем строку с элементами или словами, разделенными символом подчеркивания _, разделим строку и сохраним элементы в списке.
str = '52_841_63_24_76_49'
#split string by _
items = str.split('_')
print(items)
Вывод:
['52', '841', '63', '24', '76', '49']
Разделение строки одним или несколькими нижними подчеркиваниями
В этом примере мы возьмем строку с элементами или словами, разделенными одним или несколькими символами подчеркивания, разделим строку и сохраним элементы в списке.
Мы будем использовать пакет re в python в следующей программе. re.split (regular_expression, string) возвращает список элементов, отделенных от строки на основе regular expression.
import re
str = '52_841__63____24_76______49'
#split string by _
items = re.split('_+', str)
print(items)
Регулярное выражение _ + представляет одно или несколько подчеркиваний. Таким образом, один или несколько символов подчеркивания считаются разделителями.
Вывод:
['52', '841', '63', '24', '76', '49']
Один или несколько смежных подчеркиваний считаются одним разделителем.
Мы узнали, как разделить строку с помощью подчеркивания с помощью методов String.split() и re.split().
Как разделить строку на новую строку?
Вы можете разделить строку в Python с помощью новой строки в качестве разделителя разными способами.
В этом руководстве мы узнаем, как разбить строку на символ новой строки \n в Python, используя методы str.split() и re.split().
Пример: с помощью str.split()
В этом примере мы возьмем многострочную строку string1. Мы вызовем метод split() для этой строки с символом новой строки \n, переданным в качестве аргумента. Команда split() разбивает строку на символ новой строки и возвращает список строк.
string1 = '''Welcome
to
pythonexamples.org'''
#split string by single space
chunks = string1.split('\n')
print(chunks)
Вывод:
['Welcome', 'to', 'PythonExamples.org']
Строка также может содержать символы \n в строке, как показано ниже, вместо многострочной строки с тройными кавычками.
str = 'Welcome\nto\nPythonExamples.org'
#split string by single space
chunks = str.split('\n')
print(chunks)
Вывод:
['Welcome', 'to', 'PythonExamples.org']
Пример: с помощью re.split()
В этом примере мы разделим строку на новую строку, используя метод split() регулярного выражения re package.
Чтобы использовать пакет re, мы должны импортировать его в начале нашей программы.
import re
string1 = '''Welcome
to
pythonexamples.org'''
#split string by single space
chunks = re.split('\n', string1)
print(chunks)
Вывод:
['Welcome', 'to', 'pythonexamples.org']
Пример: деление на одну или несколько новых строк
В этом примере мы возьмем строку с подстроками, разделенными одним или несколькими символами новой строки. Мы будем использовать пакет re, чтобы разделить строку с одним или несколькими символами новой строки в качестве разделителя. Регулярное выражение, представляющее один или несколько символов новой строки, — \n +. Мы передадим это выражение и строку в качестве аргументов методу re.split().
Синтаксис метода re.split() – re.split (regular expression, string). Функция возвращает список подстрок, отделенных от строки на основе regular expression.
import re
str = '''Welcome
to
PythonExamples.org'''
#split string by single space
chunks = re.split('\n+', str)
print(chunks)
Регулярное выражение \n + представляет одну или несколько смежных новых строк. Таким образом, одна или несколько новых строк считаются разделителем между разделениями.
Вывод:
['Welcome', 'to', 'PythonExamples.org']
В этом руководстве мы узнали, как разбить строку на новую строку с помощью методов String.split() и re.split().
Разделение строки запятой
Вы можете разделить строку в Python с помощью строки, образованной фрагментами и запятыми, разделяющими их.
В этом руководстве мы узнаем, как разделить строку запятыми с помощью String.split().
Пример 1
В этом примере мы возьмем строку с фрагментами, разделенными запятой, разделим строку и сохраним элементы в списке.
str = 'apple,orange,grape'
#split string by ,
chunks = str.split(',')
print(chunks)
Вывод:
['apple', 'orange', 'grape']
Пример: одной или несколькими запятыми
Если вы используете String.split() с более чем одной запятой, соседствующей друг с другом, вы получите пустые фрагменты. Пример показан ниже.
str = 'apple,,orange,,,grape'
#split string by ,
chunks = str.split(',')
print(chunks)
Вывод:
['apple', '', 'orange', '', '', 'grape']
В этом примере мы возьмем строку с фрагментами, разделенными одним или несколькими символами подчеркивания, разделим строку и сохраним фрагмент в списке без пустых элементов.
Мы будем использовать пакет re в python в следующей программе. re.split (regular_expression, string) возвращает список элементов, отделенных от строки на основе regular expression.
import re
str = 'apple,,orange,,,grape'
#split string by ,
chunks = re.split(',+', str)
print(chunks)
Регулярное выражение, + представляет одну или несколько запятых. Итак, одна или несколько запятых считаются разделителями.
Вывод:
['apple', 'orange', 'grape']
Одна или несколько смежных запятых считаются одним разделителем.
Разделить строку на список символов
Вы можете разделить строку на список символов в Python разными способами, используя цикл for и класс List.
Пример: с помощью цикла For Loop
В этом примере мы возьмем строку и разделим ее на список символов с помощью цикла for.
def getCharList(str): return [char for char in str] str = 'pythonexamples' print(getCharList(str))
Вывод:
['p', 'y', 't', 'h', 'o', 'n', 'e', 'x', 'a', 'm', 'p', 'l', 'e', 's']
Пример: с помощью класса List
В этом примере мы берем строку и передаем ее конструктору List. Строка считается итерируемой и преобразуется в список с каждым символом в строке как элементом списка.
str = 'pythonexamples' chars = list(str) print(chars)
Вывод:
['p', 'y', 't', 'h', 'o', 'n', 'e', 'x', 'a', 'm', 'p', 'l', 'e', 's']
Мы узнали, как разбить строку на список символов на подробных примерах.