Как разделить строку на символы python
Перейти к содержимому

Как разделить строку на символы python

  • автор:

Метод str.split() в Python, делит строку по подстроке

Метод str.split() возвращает список слов (подстрок) в строке, используя sep в качестве разделителя строки str . Если задан maxsplit , то выполняется не более maxsplit разбиений, таким образом, список будет иметь не более maxsplit+1 элементов. Если maxsplit не указан или равен -1 , то делаются все возможные разделения строки str .

Если указан разделитель sep , то последовательные разделители в обрабатываемой строке не группируются вместе, а считаются разделителями пустых подстрок. Аргумент sep может состоять из нескольких символов. Разбиение пустой строки str с указанным разделителем возвращает значение [«] . Например:

# Последовательные разделители не группируются вместе. # и считаются разделителями пустых строк >>> '1,,2'.split (',') # ['1', ", '2']) #Аргумент 'sep' может состоять из нескольких символов. >>> '1<>2<>3'.split ('<>') # ['1', '2', '3']) # Разбиение пустой строки с указанным разделителем. >>> ''.split(';') [''] 

Если sep не указан или задан None , применяется другой алгоритм разбиения:

Последовательности пробелов рассматриваются как один разделитель и если строка имеет начальные или конечные пробелы, то результат не будет содержать пустых строк в начале или конце. Следовательно, разбиение пустой строки или строки, состоящей только из пробела с разделителем None , возвращает пустой список [] .

Смотрите так же метод str.rsplit() , который начинает деление строки справа.

Если необходимо разделить строку на список подстрок по регулярному выражению, то обратите внимание на функцию re.split() .

Примеры деления строки по подстроке/символу.

>>> '1,2,3'.split(',') # ['1', '2', '3'] >>> '1,2,3'.split(',', maxsplit=1) # ['1', '2,3'] >>> '1,2,,3,'.split(',') # ['1', '2', '', '3', ''] >>> '1 2 3'.split() # ['1', '2', '3'] >>> '1 2 3'.split(maxsplit=1) # ['1', '2 3'] >>> ' 1 2 3 '.split() # ['1', '2', '3'] >>> '--1-3--2'.split('-') # ['', '', '1', '3', '', '2'] 
  • ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
  • Метод str.capitalize(), первая буква в строке заглавная
  • Метод str.casefold(), сворачивает регистр строки
  • Метод str.center(), выравнивает строку по центру
  • Метод str.count(), считает совпадения в строке
  • Метод str.encode(), преобразует строку в байты
  • Метод str.endswith(), совпадение с концом строки
  • Метод str.expandtabs(), меняет табуляцию на пробел
  • Метод str.find(), индекс первого совпадения в строке
  • Метод str.format(), форматирует строку
  • Метод str.format_map()
  • Метод str.index(), индекс первого совпадения подстроки
  • Метод str.isalnum(), строка состоит из цифр и букв
  • Метод str.isalpha(), строка состоит только из букв
  • Метод str.isascii(), все символы в строке являются ASCII
  • Метод str.isdecimal(), проверяет строку на десятичное число
  • Метод str.isdigit(), строка состоит только из цифр
  • Метод str.isidentifier() проверяет строку на идентификатор Python
  • Метод str.islower( ), проверяет строку на нижний регистр
  • Метод str.isnumeric(), проверяет строку на числовые символы
  • Метод str.isprintable(), проверяет на доступность для печати
  • Метод str.isspace(), является ли строка пробелом
  • Метод str.istitle(), проверяет наличие заглавных букв в словах
  • Метод str.isupper(), проверяет строку на верхний регистр
  • Метод str.join(), объединяет список строк
  • Метод str.ljust(), ровняет строку по левому краю
  • Метод str.lower(), строку в нижний регистр
  • Метод str.lstrip(), обрезает символы в начале строки
  • Метод str.maketrans(), таблица символов для str.translate()
  • Метод str.partition(), делит строку по первому совпадению
  • Метод str.removeprefix(), удаляет префикс строки
  • Метод str.removesuffix(), удаляет суффикс строки
  • Метод str.replace(), меняет подстроку/символ в строке
  • Метод str.rfind(), индекс последнего совпадения подстроки
  • Метод str.rindex(), индекс последнего совпадения в строке
  • Метод str.rjust(), ровняет строку по правому краю
  • Метод str.rpartition(), делит строку по последнему совпадению
  • Метод str.rsplit(), делит строку справа
  • Метод str.rstrip(), обрезает символы на конце строки
  • Метод str.split(), делит строку по подстроке
  • Метод str.splitlines(), делит текст по символу ‘\n’
  • Метод str.startswith(), совпадение с началом строки
  • Метод str.strip(), обрежет строку с обоих концов
  • Метод str.swapcase(), сменит регистр символов в строке
  • Метод str.title(), каждое слово с заглавной буквы
  • Метод str.translate(), транслирование строки
  • Метод str.upper(), переведет строку в верхний регистр
  • Метод str.zfill(), дополнит строку нулями
  • Форматирование строк в стиле printf
  • F-string. Форматированные строки

Функции разбивки строк на части и образования новых строк с помощью кортежей и списков

Функция 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 , то символы-разделители включаются в результирующую строку.

Символы, на основе которых осуществляется разделение строки приведены в нижеследующей таблице

Python. Символы-разделители в строке

Пример.

# Функция 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']

Связанные темы

  • Функции для работы со строками, определяющие особенности строки
  • Функции поиска и замены подстроки в строке
  • Функции обрабатывающие и определяющие начало и конец строки
  • Функции обработки строки в соответствии с форматом или правилом кодирования. Стили форматирования
  • Функции выравнивания строк
  • Функции обрабатывающие регистр символов в строке

Как разбить строку на символы и собрать из них слова в Python?

Всем привет, столкнулся с проблемой: есть строка, ее нужно разбить на символы и собрать из них слова (слова лежат в списке)
То есть к примеру строка helloworld программа ее разбивает на символы (к примеру метод list()) и потом как-то собирает слова (А слова находятся в списке: [«hello», «world»]). Конечно, это выглядит, что надо найти слова в строке и это можно сделать с помощью метода find(), но это не то, что мне нужно.

Примеры работы:
1) И так имеем строку helloworld и список из двух элементов: hello и world. Если программа находит оба слова то она выводит:
Найдено: hello world.
2) Имеем строку redcube и список из одного элемента: cube. Как видим в строке есть два слова: red и cube. Программа должна вывести следующее:
Найдено: cube.
Неизвестное: red

3) Имеем строку cocacolacool и список из трёх элементов: cocacola, is, cool. Как видим из всей строки совпадает только два слова: cocacola и cool. И также не найденое слово is.
Поэтому программа следовательно выведет следующее:
Найдено: cocacola cool.
Не найдено: is

4) имеем строку mynameissasha и список: hello, my, name, is. Как видим здесь имеется слова: my, name, is. Одно не найденое: hello и также неизвестное sasha. Следовательно программа выводит это:
Найдено: my name is
Не найдено: hello
Неизвестное: sasha

То есть вот примерный код:

my = "helloworld" words = ["hello", "world"] my_copy = list(my) #h, e, l, l, o, w, o, r, l, d def connect (list): #чтото connect(my_copy) #выводит — Найдено: hello world
  • Вопрос задан более двух лет назад
  • 2384 просмотра

4 комментария

Простой 4 комментария

Строку разделить по 2 символа и записать в список

Author24 — интернет-сервис помощи студентам

проблема такая : я пишу строку например из 6 символов, попадают в список только 4 символа(по 2 символа в список),а 2 последних не попадают, почему, исправьте пожалуйста и еще как сделать, если в символов нечетное количество, то к последнему символу приписать ‘_’, а потом уже вставить в список?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
def solution(s): list_str = [] string = '' counter = 0 for letter in s: if counter == 2: list_str.append(string) string = '' counter = 0 if counter  2: string = string + letter counter = counter + 1 return list_str print(solution('dfdfsd'))

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Как разделить строку по два символа
Как разделить получаемую строку по два символа Допустим ввожу С645 нужно разделить на С6 и 45 и.

Разделить строку до определенного символа на 2 массива
Например, есть строка 101010 & 10101. Нужно считать число перед & и после, и записать их в массив.

Разделить строку на фрагменты по три подряд идущих символа
Дана строка. Разделить строку на фрагменты по три подряд идущих символа. В каждом фрагменте средний.

Разделить строку на фрагменты по три подряд идущих символа
Дана строка. Разделить строку на фрагменты по три подряд идущих символа. В каждом фрагменте средний.

Как разделить текстовую строку символом, через каждых 2 символа
Друзья есть строка вида: 11223344 Я хочу получить на выходе строку: 11-22-33-44 Для.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *