Функції розбиття рядків на частини та утворення нових рядків з допомогою кортежів та списків
Зміст
- 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']
⇑
Зв’язані теми
- Функції для роботи з рядками, що визначають особливості рядка
- Функції пошуку та заміни підрядка в рядку
- Функції що визначають та обробляють початок та кінець рядка
- Функції обробки рядка згідно з форматом чи правилом кодування. Стилі форматування
- Функції вирівнювання рядків
- Функції які змінюють регістр символів у рядку
⇑