Разбиваем строку на список в Python
Мы можем составить список строк из одной строки, используя метод split:
str.split(sep=None, maxsplit=-1)
str - это строка, которая будет разделена или использована для создания списка. sep - это строка-разделитель. maxsplit - это максимальное количество необходимых разбиений (таким образом, список будет содержать не более maxsplit+1 элемента). Если maxsplit не указан (что означает, что это значение по умолчанию равно -1), количество разбиений не ограничено.
list_of_words = 'Hello I am a test'.split(' ')
print(list_of_words)
# ['Hello', 'I', 'am', 'a', 'test']
Обратите внимание, что используемый разделитель - это просто пробел, поскольку именно на нем мы хотим разделить строку.
list_of_words = 'Hello-I-am-a-test'.split('-')
print(list_of_words)
# ['Hello', 'I', 'am', 'a', 'test']
Если мы зададим maxsplit равным 3, то остальная часть строки будет возвращена как последний элемент в списке после достижения максимального количества разбиений:
list_of_words = 'Hello-I-am-a-test'.split('-', 3)
print(list_of_words)
# ['Hello', 'I', 'am', 'a-test']
Обратите внимание, что последовательные разделители не группируются вместе. Итак, если у нас есть два тире подряд, один из элементов списка будет пустой строкой:
list_of_words = 'Hello--I-am-a-test'.split('-')
print(list_of_words)
# ['Hello', '', 'I', 'am', 'a', 'test']
Если sep не указан (по умолчанию он имеет значение None), то в качестве единственного разделителя будут использоваться последовательные пробельные строки. Кроме того, если есть какой-либо начальный или конечный пробел, он не будет включен в возвращаемый список:
list_of_nums = ' 1 2 3 4 '.split()
print(list_of_nums)
# ['1', '2', '3', '4']