- Функции str.split и rsplit() в Python
- Пример
- split() с maxsplit
- sep не указан или None
- Пример разделения многострочной строки
- Пример многосимвольного разделителя
- Пример функции str.split()
- Пример разделения строки CSV с вводом пользователем
- rsplit()
- PYTHON ОБРАТНАЯ ОПЕРАЦИЯ SPLIT
- Python обратная операция split
- # Reversing the list without a mutation
- # Joining the reversed list
- # Additional Resources
Функции str.split и rsplit() в Python
Функция split() в Python используется для разделения строки на список строк на основе разделителя.
str.split(sep=None, maxsplit=-1)
В качестве разделителя используется аргумент sep. Если строка содержит последовательные разделители, возвращается пустая строка. Аргумент-разделитель также может состоять из нескольких символов.
Если разделитель не указан или None, то в качестве разделителя рассматриваются пробелы. В этом случае пустая строка не будет возвращена, если в начале или в конце есть пробелы. Кроме того, несколько пробелов будут рассматриваться, как один разделитель.
Если предоставляется maxsplit, выполняется не более maxsplit (таким образом, список будет содержать не более maxsplit + 1 элементов). Если maxsplit не указан или -1, то количество разделений не ограничено, и все возможные разделения возвращаются в списке.
Пример
Давайте посмотрим на простой пример, где строка будет разделена на список на основе указанного разделителя.
s = 'Python is Nice' # simple string split example str_list = s.split(sep=' ') print(str_list)
split() с maxsplit
s = 'Python is Nice' str_list = s.split(sep=' ', maxsplit=1) print(str_list)
Обратите внимание, что в возвращенном списке всего 2 элемента, строка была разделена только один раз.
sep не указан или None
s = ' Java Python iOS Android ' str_list = s.split() print(str_list)
Вывод: [‘Java’, ‘Python’, ‘iOS’, ‘Android’].
Начальные и конечные пробелы игнорируются в возвращаемом списке. Кроме того, последовательные пробелы также считаются одним разделителем.
Пример разделения многострочной строки
multiline_str = 'Hi There\nHow are you?\nI am fine' multiline_str_split_list = multiline_str.split(sep='\n') for s in multiline_str_split_list: print(s)
Hi There How are you? I am fine
Пример многосимвольного разделителя
s = 'Hi||Hello||Adios' str_list = s.split('||') print(str_list)
Пример функции str.split()
Мы также можем использовать функцию split() непосредственно из класса str.
print(str.split('ABACAD', sep='A')) print(str.split('ABACAD', sep='A', maxsplit=2))
Обратите внимание, что возвращается пустая строка, когда первый символ соответствует разделителю.
Пример разделения строки CSV с вводом пользователем
Наконец, давайте посмотрим на реальный пример, где пользователь вводит данные CSV, а мы разбиваем их на список строк.
input_csv = input('Please enter CSV Data\n') input_csv_split_list = input_csv.split(sep=',') print('Input Data Length =', len(input_csv_split_list)) print('List of inputs =', input_csv_split_list)
Please enter CSV Data Java,Android,Python,iOS,jQuery Input Data Length = 5 List of inputs = ['Java', 'Android', 'Python', 'iOS', 'jQuery']
Это все для примеров строковой функции split() в Python. Это очень полезная функция для разделения строки на список на основе некоторого разделителя.
rsplit()
Функция rsplit() очень похожа на функцию split(). Единственная разница в том, что разделение выполняется, начиная с конца строки и двигаясь вперед.
Давайте посмотрим на некоторые примеры функции rsplit().
# rsplit() example s = 'Python is Awesome' str_list = s.rsplit(sep=' ') print(str_list) str_list = s.rsplit(sep=' ', maxsplit=1) print(str_list) s = ' Java Python iOS Android ' str_list = s.rsplit() print(str_list) multiline_str = 'Hi There\nHow are you?\nI am fine' multiline_str_split_list = multiline_str.rsplit(sep='\n') for s in multiline_str_split_list: print(s) s = 'Hi||Hello||Adios' str_list = s.rsplit('||') print(str_list) # using split() with str class print(str.rsplit('ABACAD', sep='A')) print(str.rsplit('ABACAD', sep='A', maxsplit=2)) # csv and user input example input_csv = input('Please enter CSV Data\n') input_csv_split_list = input_csv.rsplit(sep=',') print('Input Data Length =', len(input_csv_split_list)) print('List of inputs =', input_csv_split_list)
['Python', 'is', 'Awesome'] ['Python is', 'Awesome'] ['Java', 'Python', 'iOS', 'Android'] Hi There How are you? I am fine ['Hi', 'Hello', 'Adios'] ['', 'B', 'C', 'D'] ['AB', 'C', 'D'] Please enter CSV Data x,y,z Input Data Length = 3 List of inputs = ['x', 'y', 'z']
Обратите внимание, что разница видна, если указан аргумент maxsplit. В противном случае вывод функций split() и rsplit() будет таким же.
PYTHON ОБРАТНАЯ ОПЕРАЦИЯ SPLIT
Метод split() в Python используется для разбиения строки на подстроки с использованием определенного разделителя. Но иногда необходимо выполнить обратную операцию, то есть объединить список подстрок обратно в строку. Это делается с помощью метода join() .
Синтаксис метода join() выглядит следующим образом:
разделитель.join(список)
разделитель — символ, к которому будут присоединены элементы списка
список — список подстрок, которые нужно объединить в строку
Например, если имеется список подстрок [ ‘apple’ , ‘banana’ , ‘orange’ ], то его можно объединить в строку с разделителем ‘, ‘ следующим образом:
>>> fruits = [‘apple’, ‘banana’, ‘orange’]>>> ‘, ‘.join(fruits)
‘apple, banana, orange’
В результате выполнения кода получается строка «apple, banana, orange».
Python Regex: How To Split a String On Multiple Characters
python string split by separator
String Split and Join — HackerRank — Python
Python Programming 36 — Split String by New Line
Training and Testing Data Splitting in Python
How to Split Strings in Python With the split() Method
Python Regex Split — The Complete Guide
Введение в Python 3 — Урок 8 — Сокращения ввода на Python ( split, map, sep)
- Диаграмма рассеивания python
- Python dry принцип
- Как объединить элементы списка python в одно слово
- Python пользовательские типы данных
- Python import telebot не работает
- Игры написанные на python
- Django abstractuser поля
- Copy функция python
- Наибольший простой делитель python
- Функция не видит глобальную переменную python
- Python api яндекс метрика
Python обратная операция split
Here is an example that uses a comma as the separator.
Copied!my_str = 'bobby,hadz,com' my_list = my_str.split(',') print(my_list) # 👉️ ['bobby', 'hadz', 'com'] my_list.reverse() print(my_list) # 👉️ ['com', 'hadz', 'bobby'] my_str_again = ','.join(my_list) print(my_str_again) # 👉️ com,hadz,bobby
The str.split() method splits the string into a list of substrings using a delimiter.
Copied!my_str = 'bobby hadz com' my_list = my_str.split(' ') print(my_list) # 👉️ ['bobby', 'hadz', 'com']
The method takes the following 2 parameters:
Name | Description |
---|---|
separator | Split the string into substrings on each occurrence of the separator |
maxsplit | At most maxsplit splits are done (optional) |
The next step is to reverse the elements of the list using the list.reverse() method.
Copied!my_str = 'bobby hadz com' my_list = my_str.split(' ') print(my_list) # 👉️ ['bobby', 'hadz', 'com'] my_list.reverse() print(my_list) # 👉️ ['com', 'hadz', 'bobby']
The list.reverse() method reverses the elements of the list in place.
The method returns None because it mutates the original list.
# Reversing the list without a mutation
If you don’t want to mutate the original list in place, use the list slicing syntax with a step of -1 .
Copied!my_str = 'bobby hadz com' my_list = my_str.split(' ') print(my_list) # 👉️ ['bobby', 'hadz', 'com'] reversed_list = my_list[::-1] print(reversed_list) # 👉️ ['com', 'hadz', 'bobby'] print(my_list) # 👉️ ['bobby', 'hadz', 'com']
The syntax for list slicing is a_list[start:stop:step] .
We didn’t specify a value for start and stop , but specified -1 for step to get a new, reversed list.
# Joining the reversed list
The last step is to use the str.join() method to join the reversed list into a string.
Copied!my_str = 'bobby hadz com' my_list = my_str.split(' ') print(my_list) # 👉️ ['bobby', 'hadz', 'com'] my_list.reverse() print(my_list) # 👉️ ['com', 'hadz', 'bobby'] my_str_again = ' '.join(my_list) print(my_str_again) # 👉️ com hadz bobby
The str.join method takes an iterable as an argument and returns a string which is the concatenation of the strings in the iterable.
We joined the list with a space separator, but you can use any other separator.
Copied!my_str = 'bobby hadz com' my_list = my_str.split(' ') print(my_list) # 👉️ ['bobby', 'hadz', 'com'] my_list.reverse() print(my_list) # 👉️ ['com', 'hadz', 'bobby'] my_str_again = ','.join(my_list) print(my_str_again) # 👉️ com,hadz,bobby
If you don’t need a separator and just want to join the list’s elements into a string, call the join() method on an empty string.
Copied!my_str = 'bobby hadz com' my_list = my_str.split(' ') print(my_list) # 👉️ ['bobby', 'hadz', 'com'] my_list.reverse() print(my_list) # 👉️ ['com', 'hadz', 'bobby'] my_str_again = ''.join(my_list) print(my_str_again) # 👉️ comhadzbobby
When the join() method is called on an empty string, the list’s elements are joined without a separator between them.
# Additional Resources
You can learn more about the related topics by checking out the following tutorials:
- Split a String and remove the Whitespace in Python
- Split a String and get First or Last element in Python
- How to Split a string by Tab in Python
- Split a string into fixed-size chunks in Python
- Split a String into a List of Integers in Python
- Split a String into multiple Variables in Python
- Split a String into Text and Number in Python
- How to convert a String to a Tuple in Python
- Split a string with multiple delimiters in Python
- Split a String by Newline characters in Python
- How to Split a string by Whitespace in Python
- How to Split a string on Uppercase Letters in Python
I wrote a book in which I share everything I know about how to become a better, more efficient programmer.