Проблема разработки: Учитывая строку букв и цифр. Как разделить строку на подстроки букв или цифр, используя границу между буквой и номером и наоборот.
Примеры : Посмотрите на следующие примеры того, что вы хотите выполнить.
'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 и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.