Метод split()
у Python використовується для розділення рядка на підрядки на основі заданого роздільника.
Цей метод повертає список підрядків, отриманих шляхом поділу вихідного рядка.
split()
— один із вбудованих інструментів для роботи з рядками Python, дуже корисний при обробці тексту.
Оскільки метод split()
обробляє текст, відповідно й завдання, які можна вирішувати за його допомогою, належать до аналізу текстових даних:
Перейдемо до синтаксису методу split()
. Він виглядає так:
string.split([separator[, maxsplit]])
У цьому записі:
string
— це рядок, який потрібно розділити.separator
— роздільник, яким потрібно розділити рядок. Вказувати його необов’язково. Якщо сепаратор не вказаний, то у якості роздільника використовується пробіл.maxsplit
— параметр, що вказує на максимальну кількість поділів, які потрібно зробити. Його також можна не вказувати. Якщо цей параметр не визначено, рядок, який редагується, буде розділений на всі можливі підрядки.Розглянемо найпростіший приклад використання методу split()
. Припустимо, у нас є рядок, який містить список слів, розділених пробілами:
sentence = "This is a simple sentence."
Ми можемо розділити цей рядок на окремі слова, використовуючи метод split()
:
words = sentence.split() print(words)
Цей код виведе список слів, розділених пробілами:
['This', 'is', 'a', 'simple', 'sentence.']
У цьому прикладі метод split()
розбиває рядок sentence
на підрядки пробілами та повертає список підрядків. Таким чином, ми отримуємо список words
, який містить усі слова з вихідного рядка.
Метод split()
у Python дозволяє розділяти рядки на підрядки по одному роздільнику. Але якщо потрібно розділити рядок за кількома роздільниками, можна скористатися іншими методами.
Розглянемо кілька способів поділу рядка за кількома роздільниками.
Один із найуніверсальніших способів поділу рядка за декількома роздільниками — використання регулярних виразів. Для цього потрібно застосувати модуль re
та функцію re.split()
.
Наприклад, щоб розділити рядок за комами та крапками, можна використати наступний код:
import re s = "Bondarenko,Markova.Velichko,Tkachenko" words = re.split("[,.]", s) print(words) # ['Bondarenko', 'Markova', 'Velichko', 'Tkachenko']
У цьому прикладі ми застосували регулярний вираз [,.]
, який означає «розділювачі — коми та крапки». Функція re.split()
розділяє рядок s
на підрядки за цими роздільниками та повертає список рядків.
Якщо потрібно розділити рядок за кількома роздільниками, які відомі заздалегідь, можна скористатися методом replace()
. Спочатку потрібно замінити всі роздільники на той самий символ, а потім застосувати метод split()
для розділення рядка по цьому символу.
Наприклад, щоб розділити рядок за комами та крапками, можна використати наступний код:
s = "Bondarenko,Markova.Velichko,Tkachenko" s = s.replace(",", ".") # замінюємо коми на крапки words = s.split(".") print(words) # ['Bondarenko', 'Markova', 'Velichko', 'Tkachenko']
У цьому прикладі ми замінюємо всі коми на крапки за допомогою методу replace()
, а потім розділяємо рядок по крапках за допомогою методу split()
.
Навчися комбінувати різні методи Python у своєму коді на вечірніх курсах від Mate Academy. Також доступний формат повного дня з оплатою після працевлаштування.
Ще один спосіб поділу рядка за декількома роздільниками — використання генератора списку. Для цього потрібно створити список роздільників і потім застосувати метод join()
для об’єднання підрядків.
Наприклад, щоб розділити рядок за комами та крапками, можна використати наступний код:
s = "Bondarenko,Markova.Velichko,Tkachenko" separators = [",", "."] for sep in separators: s = s.replace(sep, separators[0]) words = s.split(separators[0]) print(words) # ['Bondarenko', 'Markova', 'Velichko', 'Tkachenko']
Тут ми створюємо список separators
із роздільниками та замінюємо всі роздільники на перший роздільник у списку. Потім ми розділяємо рядок по першому роздільнику за допомогою методу split()
.
Конкретний приклад поділу рядків за декількома роздільниками може бути використаний, припустимо, для парсингу інформації про товари з CSV-файлу.
Візьмемо CSV-файл з інформацією про товари, де поля розділені комою та крапкою з комою. Ми можемо використати метод split()
для розбиття рядка на частини за цими роздільниками:
import csv with open('products.csv', newline='') as csvfile: reader = csv.reader(csvfile, delimiter=';', quotechar='"') for row in reader: name, description, price = row[0].split(','), row[1].split('.'), row[2] # далі можна обробляти отримані данні # наприклад, додати товар в базу даних інтернет-магазину
Цей код відкриває файл products.csv та створює читача CSV-файлу з роздільником ;
та лапкою-обмежувачем "
. Потім він перебирає кожен рядок файлу за допомогою циклу for
і звертається до методу split()
для розділення значень поля.
Наступні рядки коду показують, як можна використовувати результати split()
для окремого поділу імені, опису та ціни товару. Розглянемо цей фрагмент коду:
name, description, price = row[0].split(','), row[1].split('.'), row[2]
В ньому:
row[0]
містить значення поля "Назва товару"
;row[1]
містить значення поля "Опис"
;row[2]
містить значення поля "Ціна"
.Ми викликаємо метод split()
для кожного рядка, щоб поділити його на окремі компоненти:
"Назва товару"
ми використовуємо ,
як роздільник;"Опис"
ми використовуємо .
;"Ціна"
ніякий роздільник не потрібний.Ми зберігаємо результати split()
в окремі змінні: name
, description
та price
відповідно. Далі може знадобитися додаткова обробка даних, наприклад, перетворення з рядкового формату в потрібний тип даних та збереження їх у базу даних інтернет-магазину.
Якщо ви займаєтеся аналітикою, витягуєте адреси з вебпрограми або проводите персоналізацію за URL-адресою, ви можете використовувати наступний підхід:
url = "https://www.example.com/products/item1?id=12345&color=blue" # Розділяємо URL-адресу на дві частини: доменне ім'я і решту domain, rest_of_url = url.split("://") # Поділяємо частину URL, що залишилас, на шлях та параметри запиту path, query_params = rest_of_url.split("?") # Розділяємо параметри запиту на ключі та значення params_list = query_params.split("&") params_dict = {} for param in params_list: key, value = param.split("=") params_dict[key] = value # Выводимо результати print("Domain:", domain) # "www.example.com" print("Path:", path) # "/products/item1" print("Query params:", params_dict) # {"id": "12345", "color": "blue"}
У цьому прикладі ми починаємо з URL-адреси https://www.example.com/products/item1?id=12345&color=blue
. За допомогою split()
ми поділяємо його на доменне ім’я www.example.com
та іншу частину products/item1?id=12345&color=blue
.
Потім ми розділяємо частину на шлях /products/item1
та параметри запиту id=12345&color=blue
. Використовуючи split()
ще раз, ми поділяємо параметри запиту на ключі та значення, зберігаємо їх у словнику params_dict
, після чого виводимо результати.
Завдання поділу рядка тексту суворо посередині — не таке тривіальне, як здається. Справа в тому, що якщо ділити рядок навпіл зрізом за кількістю символів у ньому, то може виникнути проблема, коли середина рядка потрапить на якесь слово і результат виявиться нелогічним.
Наприклад:
s = "HighloadToday є одним з популярних онлайн-ресурсів про IT" half = len(s) // 2 s1, s2 = s[:half], s[half:] print("") print(s1) print(s2) print("") print('Довжина рядка була',len(s))
На екрані бачимо:
HighloadToday є одним з попу лярних онлайн-ресурсів про Довжина рядка була 57
Щоб виключити таку помилку, можна використати інший алгоритм поділу тексту:
words
;words
, використовуючи оператор цілісного поділу;words
за middle_index
за допомогою методу join()
;words
після middle_index
за допомогою методу join()
;Ось приклад коду, який поділяє рядок за цією логікою:
string = "HighloadToday є одним з популярних онлайн-ресурсів про IT" words = string.split() middle_index = len(words) // 2 first_half = " ".join(words[:middle_index]) second_half = " ".join(words[middle_index:]) print("") print(first_half) # HighloadToday є одним з print(second_half) # популярних онлайн-ресурсів про IT
Метод split()
— зручний та швидкий спосіб роботи з текстом у Python. Він може значно скоротити код та підвищити його читальність, що особливо важливо для великих та складних проектів.
Вивчаєш Python самостійно? З ментором це буде значно швидше. Приходь на курс Python Basic від Hillel, якщо ти зовсім новачок, або Python Pro, якщо прагнеш вдосконалити знання.
Резиденти Дія.City сплатили до бюджету понад 8 млрд грн податків в І кварталі 2025 року.…
У Китаї закликають офісних працівників не працювати надто багато — держава сподівається, що вільний час…
Експерти звертають увагу на тривожну тенденцію: люди все частіше використовують ChatGPT, щоб визначити місцезнаходження, зображене…
Компанія JetBrains випустила нову версію мультимовного середовища розробки IntelliJ IDEA 2025.1. Оновлена IDE отримала численні…
Платформа обміну миттєвими повідомленнями Discord впроваджує функцію перевірки віку за допомогою сканування обличчя. Зараз вона…
Wikipedia намагається захистити себе від тисяч різноманітних ботів-скрейперів, які сканують дані цієї платформи для навчання…