Метод Python String Split()
Функция Python string Split() используется для разделения строки на список строк на основе разделителя.
Синтаксис функции Python string Split()
str.split(sep=None, maxsplit=-1)
Аргумент sep
используется в качестве разделителя. Если строка содержит последовательные разделители, возвращается пустая строка. Аргумент-разделитель также может состоять из нескольких символов.
Если разделитель не указан или Нет
, то разделителем считаются пробелы. В этом случае пустая строка не будет возвращена, если в начале или в конце есть пробелы. Кроме того, несколько пробелов будут рассматриваться как один разделитель.
Если указан maxsplit, выполняется не более maxsplit разбиений (таким образом, в списке будет не более maxsplit+1 элементов). Если maxsplit не указан или -1, то ограничений на количество разбиений нет, и в списке возвращаются все возможные разбиения.
Пример Python String Split()
Давайте рассмотрим простой пример, где строка будет разбита на список на основе указанного разделителя.
s = 'Python is Nice'
# simple string split example
str_list = s.split(sep=' ')
print(str_list)
Выход :
['Python', 'is', 'Nice']
String Split() с примером maxsplit
s = 'Python is Nice'
str_list = s.split(sep=' ', maxsplit=1)
print(str_list)
Вывод: ['Python', 'is Nice']
Обратите внимание, что возвращаемый список содержит только 2 элемента, строка была разделена только один раз.
сентябрь не указан или отсутствует
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))
Выход :
['', 'B', 'C', 'D']
['', 'B', 'CAD']
Обратите внимание, что пустая строка возвращается, когда первый символ соответствует разделителю.
Пример разделения строки 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']
Это все, что касается примеров функции python string Split(). Это очень полезная функция для разделения строки на список на основе некоторого разделителя.
Строка Python rsplit()
Функция Python string 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() будут одинаковыми.