Функции разбивки строк на части и образования новых строк с помощью кортежей и списков
Содержание
- 1. Функция str.join(). Сборка строки из списка
- 2. Функция str.partition(). Разбить строку на кортеж начиная с начала строки
- 3. Функция str.rpartition(). Разбить строку на кортеж начиная с конца строки
- 4. Функция str.rsplit(). Сформировать список слов на основе символа-разделителя
- 5. Функция str.split(). Разбивка строки по символу-разделителю
- 6. Функция str.splitlines(). Получить список строк на основе строки, которая содержит символы-разделители строк
- Связанные темы
Поиск на других ресурсах:
1. Функция str.join(). Сборка строки из списка
Функция str.join() возвращает строку, которая есть объединением строк в итерированном объекте. Если в итерированнм объекте есть не строчные значения, то функция сгенерирует исключение TypeError.
В соответствии с документацией Python использование функции имеет следующую форму:
s1 = s2.join(iterable)
где
- s1 – строка, которая создается в результате объединения строк итерированного объекта iterable;
- s2 – строка, которая служит разделителем при объединении строк.
Пример.
# Функція str.join() - сборка строки из списка # Список строк lst = ['abc', 'def', 'ghi'] s1 = '' s2 = s1.join(lst) # s2 = 'abcdefghi' # Список символов SYMBOLS = list("Hello") # ITEMS = ['H', 'e', 'l', 'l', 'o'] s1 = "" s3 = s1.join(SYMBOLS) # s3 = 'Hello' s4 = str.join(s1, SYMBOLS) # s4 = 'Hello' # Разделитель - строка ' => ' s1 = ' => ' s5 = s1.join(['012', '345', '678']) # s5 = '012 => 345 => 678'
⇑
2. Функция str.partition(). Разбить строку на кортеж начиная с начала строки
Функция str.partition() разбивает строку на кортеж из 3-х элементов на основе заданного символа-разделителя. В отличие от функции str.rpartition() в данной функции строка пересматривается от начала до конца.
Общая форма использования функции следующая:
t = str.partition(sep)
где
- str – строка, которая рассматривается на предмет разбиения;
- t – результирующий кортеж, состоящий из 3-х строк. Первая строка – это часть строки перед разделителем sep. Вторая строка – это сам разделитель sep. Третья строка – это часть строки после разделителя sep;
- sep – символ-разделитель.
Если разделитель не найден, то функция возвращает кортеж из 3-х строк, в котором первым следует сама строка, затем две пустых строки.
Пример.
# Функция str.partition() - разбивает строку на основе символа-разделителя # 1. Случай, когда разделитель найден s1 = 'abc,def,ghi' s2 = s1.partition(',') # s2 = ('abc', ',', 'def,ghi') s2 = 'abcdef'.partition('d') # s2 = ('abc', 'd', 'ef') s1 = '012+345' s2 = str.partition(s1, '+') # s2 = ('012', '+', '345') # 2. Случай, когда разделитель не найден s1 = '12345' s2 = s1.partition('=') # s2 = ('12345', '', '') # 3. Случай, когда есть несколько разделителей - строка пересматривается сначала s1 = '012+345+65+89' s2 = s1.partition('+') # s2 = ('012', '+', '345+65+89')
⇑
3. Функция str.rpartition(). Разбить строку на кортеж начиная с конца строки
Функция str.rpartition() разбивает строку на кортеж из 3-х элементов на основе заданного символа-разделителя. В отличие от функции str.partition() в данной функции строка пересматривается с конца.
Общая форма использования функции следующая:
t = str.rpartition(sep)
где
- str – строка, которая рассматривается на предмет разбиения;
- t – результирующий кортеж, состоящий из 3-х строк. Первая строка – это часть строки перед разделителем sep. Вторая строка – это сам разделитель sep. Третья строка – это часть строки после разделителя sep;
- sep – символ-разделитель.
Если разделитель не найден, то функция возвращает кортеж из 3-х строк, в котором первые две строки пустые, третья строка – сама строка.
Пример.
# Функция str.rpartition() - разбивает строку на основе символа-разделителя # 1. Случай, когда разделитель найден s1 = 'abc,def,ghi' s2 = s1.rpartition(',') # s2 = ('abc,def', ',', 'ghi') s2 = 'abcdef'.rpartition('d') # s2 = ('abc', 'd', 'ef') s1 = '012+345' s2 = str.rpartition(s1, '+') # s2 = ('012', '+', '345') # 2. Случай, когда разделитель не найден s1 = '12345' s2 = s1.rpartition('=') # s2 = ('', '', '12345') # 3. Случай, когда несколько разделителей - строка пересматривается с конца s1 = '012+345+65+89' s2 = s1.rpartition('+') # s2 = ('012+345+65', '+', '89')
⇑
4. Функция str.rsplit(). Сформировать список слов на основе символа-разделителя
Функция str.rsplit() формирует список слов, сформированных из некоторой строки на основе символа-разделителя. Функция работает также как и функция str.split() только с тем отличием, что сформированные слова разделяются справа налево.
Общая форма использования функции следующая:
setStr = str.rsplit(sep = None, maxsplit = -1)
здесь
- setStr – результирующий список строк (слов), которые формируются из строки str;
- str – исходная строка, которая разбивается на множество слов;
- sep – разделитель слов, который может состоять из одного или нескольких символов. Если задан разлелитель sep, то сами разделители не группируются вместе и считаются разделителями пустых строк. Если попробовать разделить пустую строку заданным разделителем, то возвращается список, содержащий пустую строку [»];
- maxsplit – максимальное количество разбивок, на которое может быть разбита строка str. Например, если maxsplit=2, то список будет содержать не более 3 элементов (maxsplit+1 элементов). Если значение maxsplit не указано или равно -1, то количество разделений неограничено, в этом случае выполняются все возможные разбивки строки.
Пример.
# Функция str.rsplit() - разбивка строки по символу-разделителю # 1. Вызов функции без параметров sep и maxsplit s1 = 'a,b,c,d' s2 = s1.rsplit() # s2 = ['a,b,c,d'] - одно слово, принимается ко вниманию пробел s1 = 'a b c def' s2 = s1.rsplit() # s2 = ['a', 'b', 'c', 'def'] - 4 слова, учтен пробел s1 = 'abc hello,+ fgh 0123 ' s2 = str.rsplit(s1) # s2 = ['abc', 'hello,+', 'fgh', '0123'] # 2. Вызов функции с параметром sep s1 = 'a,b,c,d' s2 = s1.rsplit(',') # s2 = ['a', 'b', 'c', 'd'], символ-разделитель ',' # символ-разделитель '!=' s2 = 'a!=b!=c!=d+5'.rsplit('!=') # s2 = ['a', 'b', 'c', 'd+5'] # 3. Вызов функции с параметрами sep, maxsplit # при таком вызове результат функции отличается от результата split() s1 = 'a,b,c,d,e' s2 = s1.split(',', 2) # s2=['a', 'b', 'c,d,e'] - от начала до конца s3 = s1.rsplit(',', 2) # s3=['a,b,c', 'd', 'e'] - с конца до начала s1 = 'a+b+c+d' s2 = s1.split('+', 2) # s2 = ['a', 'b', 'c+d'] - от начала до конца s3 = s1.rsplit('+', 2) # s3 = ['a+b', 'c', 'd'] - с конца до начала
⇑
5. Функция str.split(). Разбивка строки по символу-разделителю
Функция str.split() получает строку и возвращает список слов, сформированных из этой строки, которые разделяются (выделяются) указанным символом-разделителем.
Согласно документации Python общая форма использования функции следующая:
setStr = str.split(sep = None, maxsplit = -1)
здесь
- setStr – результирующий список строк (слов), формируемых из строки str;
- str – исходная строка, которая разбивается на множество слов;
- sep – разделитель слов, который может состоять из одного или нескольких символов. Если указан разделитель sep, то сами разделители не группируются вместе и считаются разделителями пустых строк. Если попробовать разделить пустую строку указанным разделителем, то возвращается список, содержащий пустую строку [»];
- maxsplit – максимальное количество разбивок, на которое может быть разбита строка str. Например, если maxsplit=2, то список будет содержать не более 3 элементов (maxsplit+1 элементов). Если значение maxsplit не указано или равно -1, то количество разбивок неограничено, в этом случае выполняются все возможные разбивки строки.
Пример.
# Функция str.split() - разбивка строки по символу-разделителю # 1. Вызов функции без параметров sep и maxsplit s1 = 'a,b,c,d' s2 = s1.split() # s2 = ['a,b,c,d'] - одно слово, принимается ко вниманию пробел s1 = 'a b c def' s2 = s1.split() # s2 = ['a', 'b', 'c', 'def'] - 4 слова, учитывается пробел s1 = 'abc hello,+ fgh 0123 ' s2 = str.split(s1) # s2 = s2 = ['abc', 'hello,+', 'fgh', '0123'] # 2. Вызов функции с параметром sep s1 = 'a,b,c,d' s2 = s1.split(',') # s2 = ['a', 'b', 'c', 'd'], символ-разделитель ',' # символ-разделитель '==' s2 = 'a==b==c==d+5'.split('==') # s2 = ['a', 'b', 'c', 'd+5'] # 3. Вызов функции с параметрами sep, maxsplit s1 = 'a,b,c,d,e' s2 = s1.split(',', 2) # s2=['a', 'b', 'c,d,e'] - максимум 2 разбивки (3 слова) s1 = 'a+b+++c+def++ghi' s2 = s1.split('+',3) # s2=['a', 'b', '', '+c+def++ghi'] - символ '+' заменен на ''
⇑
6. Функция str.splitlines(). Получить список строк на основе строки, которая содержит символы-разделители строк
Функция str.splitlines() формирует список строк на основе заданной строки таким образом, что учитываются символы которые служат разделителями строки.
Согласно документации Python общая форма использования функции следующая:
strList = str.splitlines([keepends])
где
- strList – результирующий список строк разделенных на границах строки;
- str – строка, содержащая символы, которые разделяют строки. К таким символам относятся, например, символ ‘\n’ новой строки (см. ниже таблицу);
- keepends – необязательный параметр, который определяет включение символов-разделителей в результирующую строку strList. Если keepends = True, то символы-разделители включаются в результирующую строку.
Символы, на основе которых осуществляется разделение строки приведены в нижеследующей таблице
Пример.
# Функция str.splitlines() # 1. Вызов функции без параметров s1 = 'ab\ncd\ref' s2 = s1.splitlines() # s2 = ['ab', 'cd', 'ef'] s1 = '012\x1d345\x1e6789' s2 = str.splitlines(s1) # s2 = ['012', '345', '6789'] s2 = 'abc\u2028defg'.splitlines() # s2 = ['abc', 'defg'] # 2. Вызов функции с параметром - включены символы-разделители s1 = 'ab\ncd\r\nef' s2 = s1.splitlines(True) # s2 = ['ab\n', 'cd\r\n', 'ef'] s2 = 'abc\u2029def'.splitlines(True) # s2 = ['abc\u2029', 'def'] s2 = '\n\n\r\n'.splitlines(False) # s2 = ['', '', ''] s2 = '\n\n\r\n'.splitlines(True) # s2 = ['\n', '\n', '\r\n']
⇑
Связанные темы
- Функции для работы со строками, определяющие особенности строки
- Функции поиска и замены подстроки в строке
- Функции обрабатывающие и определяющие начало и конец строки
- Функции обработки строки в соответствии с форматом или правилом кодирования. Стили форматирования
- Функции выравнивания строк
- Функции обрабатывающие регистр символов в строке
⇑