Разделить строку на список Python
В этом посте мы обсудим, как разделить строку с разделителями и без разделителей на список в Python.
Связанный пост:
1. Использование list() конструктор
The list() конструктор строит список непосредственно из итерируемого объекта, а поскольку строка является итерируемой, вы можете создать из нее список, передав строку конструктору списка:
if __name__ == ‘__main__’ :
input = ‘ABC’
chars = list ( input )
print ( chars ) # [‘A’, ‘B’, ‘C’]
2. Использование str.split() функция
Вы можете использовать str.split(sep=None) функция, которая возвращает список слов в строке, используя sep в качестве строки-разделителя.
Например, чтобы разделить строку с разделителем — , ты можешь сделать:
if __name__ == ‘__main__’ :
l = s . split ( ‘-‘ )
print ( l ) # prints [‘1’, ‘2’, ‘3’]
Если sep не указано или указано None , последовательные запуски пробелов считаются одним разделителем.
if __name__ == ‘__main__’ :
l = s . split ( )
print ( l ) # prints [‘1’, ‘2’, ‘3’]
3. Использование shlex.split() функция
The шлекс модуль определяет shlex.split(s) функция, которая разбивает строку s с использованием командного синтаксиса.
import shlex
if __name__ == ‘__main__’ :
l = shlex . split ( s )
print ( l ) # prints [‘1’, ‘2’, ‘3’]
Это все о разбиении строки на список в Python.
Оценить этот пост
Средний рейтинг 4.02 /5. Подсчет голосов: 66
Голосов пока нет! Будьте первым, кто оценит этот пост.
Сожалеем, что этот пост не оказался для вас полезным!
Расскажите, как мы можем улучшить этот пост?
Спасибо за чтение.
Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.
Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂
Подписывайся
1 Комментарий
Большинство голосов
Новейшие Самый старый
Встроенные отзывы
Просмотреть все комментарии
Просмотр комментариев
Загрузить больше комментариев
Просматривать
Подпишитесь на новые публикации
- Все проблемы
- Практика DSA
- 100 самых популярных задач
- 50 лучших классических задач
- Лучшие алгоритмы
- Компилятор С/С++
- Компилятор Java
- Компилятор Python
- Компилятор JavaScript
- компилятор PHP
- Компилятор C#
- Свяжитесь с нами
- Политика конфиденциальности
- условия обслуживания
- Подпишитесь на новые публикации
Techie Delight © 2023 Все права защищены.
Этот веб-сайт использует файлы cookie. Используя этот сайт, вы соглашаетесь с использованием файлов cookie, нашей политикой, условиями авторского права и другими условиями. Читайте наши Политика конфиденциальности. Понятно
Руководство по использованию метода split в Python
Строки — отличный инструмент в руках Python-разработчиков. В Python строка —
это последовательность символов в кавычках. Она может включать числа, буквы и
символы. С помощью Python строку можно разделить на список подстрок по
определенному разделителю. Это делается с помощью метода split .
В этом материале разберем особенности его использования.
Что делает split в Python?
Функция split сканирует всю строку и разделяет ее в случае нахождения разделителя.
В строке должен быть как минимум один разделитель. Им может выступать в том
числе и символ пробела. Пробел — разделитель по умолчанию.
Если параметр на задать, то разделение будет выполнено именно по символу
пробела.
Синтаксис функции следующий:
string.split(separator*, maxsplit*)
Параметр separator — необязательный, но он позволяет задать разделитель
вручную.
Параметр maxsplit определяет максимальное количество разделений. Значение по
умолчанию — -1, будут выполнены все разделения.
Как разделить строку в Python
Метод .split() разделяет основную строку по разделителю и возвращает список строк.
Методы строк в Python
Строки — это последовательности, а значит любые операции над последовательностями для них работают тоже:
print(len('Hello world')) # Выведет: 11 print('Hello world'[6:]) # Выведет: 'world' print('Hello world'.count('l')) # Выведет: 3
Все методы строк перечислены на специальной странице в документации. Здесь мы продемонстрирует работу некоторых из них.
Примеры методов строк
str.split
Возьмём строку, содержащую пробелы, перенос строки и табы:
print('Hi!\n\tMy name is Bob.')
Метод str.split позволяет разбить строку на список из нескольких строк по “пробельным” символам:
print('Hi!\n\tMy name is Bob.'.split()) # Выведет ['Hi!', 'My', 'name', 'is', 'Bob.']
Строку можно разбить и по конкретному символу. Вот так можно разбить строку на слова исключительно по пробелам:
print('Hi!\n\tMy name is Bob.'.split(' ')) # Выведет ['Hi!\n\tMy', 'name', 'is', 'Bob.']
str.join
join — антоним split , и может соединить строку, например, обратно по пробелам:
print(' '.join(['Hi!\n\tMy', 'name', 'is', 'Bob.']))
Обратите внимание на синтаксис: сначала идёт строка, по которой нужно склеить список строк, а уже в скобочках идёт список строк.
str.isdigit и str.isalpha
Среди методов строк реализовано много рутиных операций. Например, можно проверить, состоит ли строка только из цифр или только из букв:
>>> print('123'.isdigit()) True >>> print('Hello'.isdigit()) False >>> print('Hello'.isalpha()) True >>> print('Hello!'.isalpha()) False
str.rjust, str.ljust и str.center
В другой статье мы описали, как с помощью этих методов выравнивать строки по ширине.
Попробуйте бесплатные уроки по Python
Получите крутое код-ревью от практикующих программистов с разбором ошибок и рекомендациями, на что обратить внимание — бесплатно.
Переходите на страницу учебных модулей «Девмана» и выбирайте тему.
Функции разбивки строк на части и образования новых строк с помощью кортежей и списков
Функция str.join() возвращает строку, которая есть объединением строк в итерированном объекте. Если в итерированнм объекте есть не строчные значения, то функция сгенерирует исключение TypeError.
В соответствии с документацией Python использование функции имеет следующую форму:
s1 = s2.join(iterable)
- s1 – строка, которая создается в результате объединения строк итерированного объекта iterable ;
- s2 – строка, которая служит разделителем при объединении строк.
Пример.
# Функція str.join() - сборка строки из списка # Список строк lst = ['abc', 'def', 'ghi'] s1 = '' s2 = s1.join(lst) # s2 = 'abcdefghi' # Список символов SYMBOLS = list("Hello") # ITEMS = ['H', 'e', 'l', 'l', 'o'] s1 = "" s3 = s1.join(SYMBOLS) # s3 = 'Hello' s4 = str.join(s1, SYMBOLS) # s4 = 'Hello' # Разделитель - строка ' => ' s1 = ' => ' s5 = s1.join(['012', '345', '678']) # s5 = '012 => 345 => 678'
2. Функция str.partition() . Разбить строку на кортеж начиная с начала строки
Функция str.partition() разбивает строку на кортеж из 3-х элементов на основе заданного символа-разделителя. В отличие от функции str.rpartition() в данной функции строка пересматривается от начала до конца.
Общая форма использования функции следующая:
t = str.partition(sep)
- str – строка, которая рассматривается на предмет разбиения;
- t – результирующий кортеж, состоящий из 3-х строк. Первая строка – это часть строки перед разделителем sep . Вторая строка – это сам разделитель sep . Третья строка – это часть строки после разделителя sep ;
- sep – символ-разделитель.
Если разделитель не найден, то функция возвращает кортеж из 3-х строк, в котором первым следует сама строка, затем две пустых строки.
Пример.
# Функция str.partition() - разбивает строку на основе символа-разделителя # 1. Случай, когда разделитель найден s1 = 'abc,def,ghi' s2 = s1.partition(',') # s2 = ('abc', ',', 'def,ghi') s2 = 'abcdef'.partition('d') # s2 = ('abc', 'd', 'ef') s1 = '012+345' s2 = str.partition(s1, '+') # s2 = ('012', '+', '345') # 2. Случай, когда разделитель не найден s1 = '12345' s2 = s1.partition('=') # s2 = ('12345', '', '') # 3. Случай, когда есть несколько разделителей - строка пересматривается сначала s1 = '012+345+65+89' s2 = s1.partition('+') # s2 = ('012', '+', '345+65+89')
3. Функция str.rpartition() . Разбить строку на кортеж начиная с конца строки
Функция str.rpartition() разбивает строку на кортеж из 3-х элементов на основе заданного символа-разделителя. В отличие от функции str.partition() в данной функции строка пересматривается с конца.
Общая форма использования функции следующая:
t = str.rpartition(sep)
- str – строка, которая рассматривается на предмет разбиения;
- t – результирующий кортеж, состоящий из 3-х строк. Первая строка – это часть строки перед разделителем sep . Вторая строка – это сам разделитель sep . Третья строка – это часть строки после разделителя sep ;
- sep – символ-разделитель.
Если разделитель не найден, то функция возвращает кортеж из 3-х строк, в котором первые две строки пустые, третья строка – сама строка.
Пример.
# Функция str.rpartition() - разбивает строку на основе символа-разделителя # 1. Случай, когда разделитель найден s1 = 'abc,def,ghi' s2 = s1.rpartition(',') # s2 = ('abc,def', ',', 'ghi') s2 = 'abcdef'.rpartition('d') # s2 = ('abc', 'd', 'ef') s1 = '012+345' s2 = str.rpartition(s1, '+') # s2 = ('012', '+', '345') # 2. Случай, когда разделитель не найден s1 = '12345' s2 = s1.rpartition('=') # s2 = ('', '', '12345') # 3. Случай, когда несколько разделителей - строка пересматривается с конца s1 = '012+345+65+89' s2 = s1.rpartition('+') # s2 = ('012+345+65', '+', '89')
4. Функция str.rsplit() . Сформировать список слов на основе символа-разделителя
Функция str.rsplit() формирует список слов, сформированных из некоторой строки на основе символа-разделителя. Функция работает также как и функция str.split() только с тем отличием, что сформированные слова разделяются справа налево.
Общая форма использования функции следующая:
setStr = str.rsplit(sep = None, maxsplit = -1)
- setStr – результирующий список строк (слов), которые формируются из строки str ;
- str – исходная строка, которая разбивается на множество слов;
- sep – разделитель слов, который может состоять из одного или нескольких символов. Если задан разлелитель sep , то сами разделители не группируются вместе и считаются разделителями пустых строк. Если попробовать разделить пустую строку заданным разделителем, то возвращается список, содержащий пустую строку [»] ;
- maxsplit – максимальное количество разбивок, на которое может быть разбита строка str . Например, если maxsplit =2, то список будет содержать не более 3 элементов ( maxsplit +1 элементов). Если значение maxsplit не указано или равно -1, то количество разделений неограничено, в этом случае выполняются все возможные разбивки строки.
Пример.
# Функция str.rsplit() - разбивка строки по символу-разделителю # 1. Вызов функции без параметров sep и maxsplit s1 = 'a,b,c,d' s2 = s1.rsplit() # s2 = ['a,b,c,d'] - одно слово, принимается ко вниманию пробел s1 = 'a b c def' s2 = s1.rsplit() # s2 = ['a', 'b', 'c', 'def'] - 4 слова, учтен пробел s1 = 'abc hello,+ fgh 0123 ' s2 = str.rsplit(s1) # s2 = ['abc', 'hello,+', 'fgh', '0123'] # 2. Вызов функции с параметром sep s1 = 'a,b,c,d' s2 = s1.rsplit(',') # s2 = ['a', 'b', 'c', 'd'], символ-разделитель ',' # символ-разделитель '!=' s2 = 'a!=b!=c!=d+5'.rsplit('!=') # s2 = ['a', 'b', 'c', 'd+5'] # 3. Вызов функции с параметрами sep, maxsplit # при таком вызове результат функции отличается от результата split() s1 = 'a,b,c,d,e' s2 = s1.split(',', 2) # s2=['a', 'b', 'c,d,e'] - от начала до конца s3 = s1.rsplit(',', 2) # s3=['a,b,c', 'd', 'e'] - с конца до начала s1 = 'a+b+c+d' s2 = s1.split('+', 2) # s2 = ['a', 'b', 'c+d'] - от начала до конца s3 = s1.rsplit('+', 2) # s3 = ['a+b', 'c', 'd'] - с конца до начала
5. Функция str.split() . Разбивка строки по символу-разделителю
Функция str.split() получает строку и возвращает список слов, сформированных из этой строки, которые разделяются (выделяются) указанным символом-разделителем.
Согласно документации Python общая форма использования функции следующая:
setStr = str.split(sep = None, maxsplit = -1)
- setStr – результирующий список строк (слов), формируемых из строки str ;
- str – исходная строка, которая разбивается на множество слов;
- sep – разделитель слов, который может состоять из одного или нескольких символов. Если указан разделитель sep , то сами разделители не группируются вместе и считаются разделителями пустых строк. Если попробовать разделить пустую строку указанным разделителем, то возвращается список, содержащий пустую строку [»] ;
- maxsplit – максимальное количество разбивок, на которое может быть разбита строка str . Например, если maxsplit =2, то список будет содержать не более 3 элементов ( maxsplit +1 элементов). Если значение maxsplit не указано или равно -1, то количество разбивок неограничено, в этом случае выполняются все возможные разбивки строки.
Пример.
# Функция str.split() - разбивка строки по символу-разделителю # 1. Вызов функции без параметров sep и maxsplit s1 = 'a,b,c,d' s2 = s1.split() # s2 = ['a,b,c,d'] - одно слово, принимается ко вниманию пробел s1 = 'a b c def' s2 = s1.split() # s2 = ['a', 'b', 'c', 'def'] - 4 слова, учитывается пробел s1 = 'abc hello,+ fgh 0123 ' s2 = str.split(s1) # s2 = s2 = ['abc', 'hello,+', 'fgh', '0123'] # 2. Вызов функции с параметром sep s1 = 'a,b,c,d' s2 = s1.split(',') # s2 = ['a', 'b', 'c', 'd'], символ-разделитель ',' # символ-разделитель '==' s2 = 'a==b==c==d+5'.split('==') # s2 = ['a', 'b', 'c', 'd+5'] # 3. Вызов функции с параметрами sep, maxsplit s1 = 'a,b,c,d,e' s2 = s1.split(',', 2) # s2=['a', 'b', 'c,d,e'] - максимум 2 разбивки (3 слова) s1 = 'a+b+++c+def++ghi' s2 = s1.split('+',3) # s2=['a', 'b', '', '+c+def++ghi'] - символ '+' заменен на ''
6. Функция str.splitlines() . Получить список строк на основе строки, которая содержит символы-разделители строк
Функция str.splitlines() формирует список строк на основе заданной строки таким образом, что учитываются символы которые служат разделителями строки.
Согласно документации Python общая форма использования функции следующая:
strList = str.splitlines([keepends])
- strList – результирующий список строк разделенных на границах строки;
- str – строка, содержащая символы, которые разделяют строки. К таким символам относятся, например, символ ‘\n’ новой строки (см. ниже таблицу);
- keepends – необязательный параметр, который определяет включение символов-разделителей в результирующую строку strList . Если keepends = True , то символы-разделители включаются в результирующую строку.
Символы, на основе которых осуществляется разделение строки приведены в нижеследующей таблице
Пример.
# Функция str.splitlines() # 1. Вызов функции без параметров s1 = 'ab\ncd\ref' s2 = s1.splitlines() # s2 = ['ab', 'cd', 'ef'] s1 = '012\x1d345\x1e6789' s2 = str.splitlines(s1) # s2 = ['012', '345', '6789'] s2 = 'abc\u2028defg'.splitlines() # s2 = ['abc', 'defg'] # 2. Вызов функции с параметром - включены символы-разделители s1 = 'ab\ncd\r\nef' s2 = s1.splitlines(True) # s2 = ['ab\n', 'cd\r\n', 'ef'] s2 = 'abc\u2029def'.splitlines(True) # s2 = ['abc\u2029', 'def'] s2 = '\n\n\r\n'.splitlines(False) # s2 = ['', '', ''] s2 = '\n\n\r\n'.splitlines(True) # s2 = ['\n', '\n', '\r\n']
Связанные темы
- Функции для работы со строками, определяющие особенности строки
- Функции поиска и замены подстроки в строке
- Функции обрабатывающие и определяющие начало и конец строки
- Функции обработки строки в соответствии с форматом или правилом кодирования. Стили форматирования
- Функции выравнивания строк
- Функции обрабатывающие регистр символов в строке