Проблема разработки: Учитывая строку букв и цифр. Как разделить строку на подстроки букв или цифр, используя границу между буквой и номером и наоборот.
Примеры : Посмотрите на следующие примеры того, что вы хотите выполнить.
'111A222B333C' ---> ['111', 'A', '222', 'B', '333', 'C'] 'Finxter42' ---> ['Finxter', '42'] 'Hello world' ---> ['Hello', ' world']
Метод 1: Re.Split ()
Re.Split (шаблон, строка)
Метод соответствует всем вхождению шаблон
В строка
и делит строку вдоль матчей, что приводит к списку строк между матчи. Например, Re.Split («A», «BBABBBAB»)
Результаты в списке строк [«BB», «BBB», «B»]
Отказ
# Method 1: re.split() import re s = '111A222B333C' res = re.split('(\d+)', s) print(res) # ['', '111', 'A', '222', 'B', '333', ' C']
\ D
Специальный персонаж Соответствует любой цифре от 0 до 9. Используя максимальное количество цифр в качестве разделителя, вы разделены вдоль границы Digit-Word. Обратите внимание, что вы не употребляете разделенный символ, упаковывая его в Соответствующая группа Используя скобки (...)
Отказ Если вы оставите в скобках, он потребляет номера, и результат не будет содержать никаких последовательных чисел.
Метод 2: Re.findall ()
Re.findall (шаблон, строка)
Метод сканирует строка
от слева направо , в поисках всех не перекрывающиеся матчи из шаблон
Отказ Возвращает Список строк в порядке сопоставления при сканировании строки слева направо.
# Method 2: re.findall() import re s = '111A222B333C' res = re.findall('(\d+|[A-Za-z]+)', s) print(res) # ['111', 'A', '222', 'B', '333', 'C']
Метод 3: iTertools.groupby ()
# Method 3: itertools.groupby() from itertools import groupby s = '111A222B333C' res = [''.join(g) for _, g in groupby(s, str.isalpha)] print(res) # ['111', 'A', '222', 'B', '333', 'C']
-
Itertools.groupby (ИТЕРАЛНЫЙ,)
Функция создает итератор, который возвращает кортежи(ключ, групповой итератор)
сгруппирован каждым значениемключ
Отказ Мы используемstr.isalpha ()
Функция как функция ключа. -
str.isalpha ()
Функция возвращаетПравда
Если строка состоит только из буквенных символов.
Связанные видео Re.split ()
Куда пойти отсюда?
Достаточно теории, давайте познакомимся!
Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?
Практические проекты – это то, как вы обостряете вашу пилу в кодировке!
Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?
Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.
Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.
Присоединяйтесь к свободному вебинару сейчас!
Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.
Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.
Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.