Как разбить строку в Python?

Чтобы разделить строку в 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']

Мы узнали, как разбить строку на список символов на подробных примерах.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *