Рубрики
Без рубрики

Python String StartSwith – Как проверить несколько значений

https://youtu.be/o2jyanugy74 Формирование проблем: Как проверить, если строка запускается с любого префикса от Iterable? Учитывая строку и несколько префиксов строки в таблице, такую как список или кортеж. Как проверить, начинается ли строка с любых предоставленных префиксов? Вот три примера: префиксы = … Python String StartSwith – Как проверить несколько значений Подробнее »

Автор оригинала: Chris.

Формирование задачи: как проверить, если строка начинается с любого префикса от ITERABLE?

Учитывая строку и несколько префиксов строки в таблице, такую как список или кортеж.

Как проверить, начинается ли строка с любой из предоставленных префиксов?

Вот три примера:

s = 'hello world'
prefixes = ['hi', 'bye', 'no', 'hello']
# True

s = 'finxter'
prefixes = ['p', 'f', 'fi', 'xt']
# True

s = 'mimi'
prefixes = ['a', 'b', 'c']
# False

Обзор решения

Существует три способа проверить, если строка начинается с любого префикса из подразделения по строкам:

  • S.cstartswith (кортеж (префиксы))
  • любой (s.cstartswith (x) для x в префиксах)
  • Любая (карта (S.cstartswith, Prefixes))

Давайте погрузимся в каждый из тех, кто следующий!

Метод 1: пройти кортеж префиксов

Чтобы проверить, начинается ли данная строка с любого из нескольких префиксы , преобразуйте счетчику префиксов в кортеж и передать его в string.startswith () метод так: S.ctartswith (кортеж (префиксы)) Отказ

Следующий код проверяет, если строка «Hello World» начинается с любого из ряда префиксов.

s = 'hello world'
prefixes = ['hi', 'bye', 'no', 'hello']

result = s.startswith(tuple(prefixes))

print(result)
# True

Если вам интересно: вот более формальный обзор string.startswith () Метод:

str.startswith(prefix[, start[, end]])
приставка обязательный Строковое значение для поиска в начале String Str. Также может быть кортеж префиксов.
Начало по желанию Индекс первой позиции, где префикс должен быть проверен. По умолчанию:.
конец по желанию Индекс последней позиции, где префикс должен быть проверен. По умолчанию: (ул) -1.

Но есть еще один элегантный решение на основе любой () функция. Давайте рассмотрим это следующее!

Способ 2: Используйте функцию любой ()

Чтобы проверить, начинается ли данная строка с любого из нескольких префиксы , вы можете использовать Любая (считать) Функция, которая возвращает Правда Если хотя бы один из значений в итерателе оценивает Правда Отказ Вы можете проверить каждый префикс против строки, используя выражение генератора Нравится так: любой (s.cstartswith (x) для x в префиксах) Отказ

Вот тот же пример, что и раньше:

s = 'hello world'
prefixes = ['hi', 'bye', 'no', 'hello']

result = any(s.startswith(x) for x in prefixes)

print(result)
# True

Выражение генератора S.cstartswith (x) для x в префиксах генерирует логические значения, пока он не найдет Правда значение. В этом случае это короткие замыкания исполнение и любой () Функция немедленно возвращает Правда -A префикс был найден.

Вы также можете использовать карта () Функция вместо выражения генератора для преобразования каждого префикса в логическое значение:

Метод 3: Используйте функцию карты ()

карта () Функция преобразует утечку для нового, применяя «Функция трансформатора» к каждому элементу. Вы можете преобразовать каждую возможную строку префикса в логическое значение, действительно ли этот префикс действительно префикс заданной строки. Полученное, что истеченное для логических значений, затем можно проверить для Правда значение, используя любой () Функция такая: Любая (карта (S.cstartswith, префиксы)) Отказ

Вот тот же пример, что и прежде чем использовать этот метод:

s = 'hello world'
prefixes = ['hi', 'bye', 'no', 'hello']

result = any(map(s.startswith, prefixes))

print(result)
# True

Резюме

Существует три способа проверить, если строка начинается с любого префикса из подразделения по строкам:

  • S.cstartswith (кортеж (префиксы))
  • любой (s.cstartswith (x) для x в префиксах)
  • Любая (карта (S.cstartswith, Prefixes))

Если вы хотите узнать о каждом из этих методов и стать мастером программирования, посмотрите на членство Premium Premium, недорогую подписку на компьютерные науки и курсы Python, которые будут повышать ваше понимание кода до уровня, которые никогда не видели!

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.