Разбиваем строку на список в 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']