Методы строк в 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
Получите крутое код-ревью от практикующих программистов с разбором ошибок и рекомендациями, на что обратить внимание — бесплатно.
Переходите на страницу учебных модулей «Девмана» и выбирайте тему.
Python. Разбить строку на слова с учётом кавычек
Предположим, вы собираете архив статей, и хотите для каждой автоматически определять теги — по ним можно будет моментально найти статью в архиве. В качестве тегов решили брать топ-3 слова из текста.
Например, такая статья:
text = """Голубь Френк прибыл в отель "Четыре сезона" с дружеским визитом. По сообщениям очевидцев, он сожрал в ресторане киноа прямо из тарелки гостя, а затем клюнул в глаз прибежавшего на шум официанта. Френк прилетает в "Четыре сезона" каждый год. В прошлый раз мерзкая птица нагадила в ванну с шампанским в королевском люксе, лишив кого-то романтического вечера."""
Вы чистите текст от пунктуации, бьёте по пробелам и считаете слова. Вот топ-3:
[('френк', 2), ('четыре', 2), ('сезона', 2)]
Но погодите, разве правильно считать «четыре» и «сезона» разными тегами? Это ведь название отеля, лучше учитывать их как одно словосочетание. Тут-то и пригодится функция shlex.split() — она трактует словосочетания в кавычках как один токен:
# слегка чистим text, для краткости опускаю import shlex from collections import Counter words = shlex.split(text) words = [word for word in words if len(word) > 3] Counter(words).most_common(3) [('френк', 2), ('четыре сезона', 2), ('голубь', 1)]
Вот теперь теги что надо!
P.S. Вообще, shlex предназначен для разбора shell-подобных строк, так что если злая судьба заставит вас парсить bash-скрипты — вы знаете, куда смотреть.
Подписывайтесь на канал, чтобы не пропустить новые заметки
Как разделить строку на слова python
Запись: and-semakin/mytetra_data/master/base/1575203459y0kbg1is44/text.html на raw.githubusercontent.com
>>> a=’Beautiful, is; better*than\nugly’
[‘Beautiful’, ‘is’, ‘better’, ‘than’, ‘ugly’]
- Закодировать файл в base64 на Python
- Рекурсивное создание директорий в Python
- Сортировка в Python
- Правильно добавить год/месяц к дате в Python
- Отформатировать дату в Python
- Получить рабочую директорию и директорию со скриптом в Python
- Копия объекта в Python
- Время выполнения программы на Python
- Конвертировать datetime.timedelta в строку
- Парсинг даты в Python
- Конвертировать строку (str) в булевый тип (bool) в Python
- Получить местный часовой пояс в Python
- Проверить, что строка соответствует регулярному выражению в Python
- Просмотреть доступные версии модулей в PIP
- Получить целочисленный Unix timestamp в Python
- getter и setter в Python
- Настроить формат вывода логов в Python
- Получить переменную окружения в Python
- Обновить пакет в PIP
- Получить имя (хостнейм) машины из Python
- Вывести стэк вызовов при возникновении исключения в Python
- Функция eval в Python
- Дозаписывать (append) в файл в Python
- Препроцессинг кода в Python
- Проверить, что программа установлена из Python
- Настроить путь для импорта библиотек в Python
- Получить размер терминала в символах в Python
- Enum с дополнительными полями в Python
- Ошибка invalid command ‘bdist_wheel’ при установке пакета через PIP
- Получить список аргументов функции из Python
- Сделать словарь только для чтения в Python
- Заматчить любой символ, включая перевод строки, в регулярных выражениях на Python
- Получить список файлов в директории через pathlib в Python
- Вывести действительное число с округлением до нескольких символов после запятой в Python
- Вывод в терминал текста с цветами в Python
- Перезагрузить импортированный модуль в Python
- Безопасно создать список/словарь/любой объект из строкового представления в Python
- Аналог декоратора @property для методов класса в Python
- Перехватить ошибку TimeoutError в asyncio
- Отключить вывод логов в Python
- Уровни логгирования в Python
- Удалить *.pyc и __pycache__ файлы
- Выгрузить объект в JSON в Unicode в Python
- Конвертировать datetime в другую часовую зону в Python
- Дополнить строку нулями в Python
- Вычислить MD5 от строки в Python
- Удалить знаки пунктуации из строки в Python
- Проверить, что первая буква в строке — заглавная, в Python
- Разбить (split) строку по нескольким разделителям в Python
- Отсортировать версии в Python
- Распаковать любой архив в Python
- Получить имя текущего скрипта на Python
- Установка pip на Python 2.6
- Отличить печатаемый символ Unicode от непечатаемого на Python
- Вывести версию интерпретатора Python в машиночитаемом виде
- Найти место, куда Python устанавливает пакеты (dist-packages, site-packages)
Метод 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. Форматированные строки