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

Как порезать строку в Python?

Проблема: дана строка; Как разделить / вырезать строку и извлечь требуемые символы? В этой статье мы будем обсуждать некоторые интересные сценарии, которые позволяют нам разделить или вырезать строку и извлечь необходимую часть строки, которая нам нужна. Давайте погрузимся в каждый пример / сценарий и посмотрите на … Как отрезать нить в Python? Подробнее “

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

Проблема: Учитывая строку; Как разделить/вырезать строку и извлечь требуемые символы?

В этой статье мы будем обсуждать некоторые Интересные сценарии которые позволяют нам разделить или вырезать строку и извлечь необходимую часть строки, которая нам нужна. Давайте погрузимся в каждый пример/сценарий и посмотрим, как мы можем успешно отрезать строку на основе требований в каждом сценарии.

✨ Сценарий 1.

Постановка проблемы

Учитывая следующую строку:

s = 'http://www.example.com/?s=something&two=20'

Требование:

Вы должны разделить строку такую, что бы ни было после & В данной строке («URL») пренебрегают, то есть выходная строка должна быть следующей:

s = 'http://www.example.com/?s=something

◈ Метод 1: использование метода SPLIT ()

Сплит () Это встроенный метод в Python, который используется для вырезания/разделения заданной строки на основе данного сепаратора. Вы можете указать любой сепаратор в соответствии с вашими требованиями, однако по умолчанию сепаратор является пробелом.

Синтаксис:

  • разделитель является необязательным параметром, который используется для указания сепаратора (разделителей). По умолчанию это любой персонаж пробела.
  • maxsplit Необязательный параметр, который позволяет нам указывать максимальное количество расщеплений, которое мы хотим выполнить. По умолчанию его значение – -1 Это «все вхождения».

Решение : Вы можете использовать Сплит () Способ и укажите сепаратор на основе которого вы хотите разрезать строку, а затем извлечь раздел строки из списка, создаваемого Сплит () функция. Давайте посмотрим на то, как это может быть реализовано в следующем куске кода:

s = 'http://www.example.com/?s=something&two=20'
print(s.split('&')[0])

Выход:

http://www.example.com/?s=something

◈ Метод 2: Использование метода RFind () и нарезка строки

Нам нужно извлечь часть строки, которая находится до & персонаж. Поэтому простая работа для нашей проблемы состоит в том, чтобы найти индекс & персонаж в строке с помощью RFind () Функция, а затем нарезать строку с помощью индекса.

Примечание: RFind () Метод используется для поиска последнего возникновения указанного значения.

Решение

s = 'http://www.example.com/?s=something&two=20'
print(s[:s.rfind('&')])

Выход:

http://www.example.com/?s=something

◈ Метод 3: Использование метода index ()

Другой простой подход к сокращению данной строки – это нарезать его с помощью метода индекса. Индекс (значение) Метод возвращает индекс ценность аргумент Давайте посмотрим на процедуру для реализации Индекс (значение) Способ и плевать нашу строку.

s = 'http://www.example.com/?s=something&two=20'
print(s[:s.index('&')])

Выход:

http://www.example.com/?s=something

В этом сценарии задача резки строки была довольно проста, поскольку был один разделитель, и все, что нам нужно было сделать, была разделить строку на основе разделителя & Отказ Что, если вы хотите извлечь строку, устраняя более одного символа или последовательности. Это приводит нас к следующему сценарию!

✨ Сценарий 2.

Постановка проблемы

Учитывая строку, состоящую из чисел, букв и специальных символов; Как разделить строку всякий раз, когда происходит специальный символ или число?

Пример

string = "Finxter$#! Academy Python111Freelancing"

Желаемый вывод

['Finxter', 'Academy', 'Python', 'Freelancing']

◈ Метод 1: Использование Re.Split

Re.Split (шаблон, строка) Метод соответствует всем вхождению шаблон В строка и делит строку вдоль матчей, что приводит к списку строк между матчи. Например, Re.Split («A», «BBABBBAB») Результаты в списке строк [«BB», «BBB», «B»] Отказ

Решение

import re

s = "Finxter$#! Academy Python111Freelancing"
res = re.split('\d+|\W+', s)
print(res)

Выход:

['Finxter', 'Academy', 'Python', 'Freelancing']

Примечание:

  • \ D Специальный персонаж соответствует любой цифре от 0 до 9.
  • \ W . Это специальная последовательность, которая возвращает матч, где он не находит никаких символов слова в данной строке. Здесь используется, чтобы найти разделители во время расщепления строки.

Если вы хотите хранить сепараторы, пожалуйста, посмотрите на Это руководство что ответит вам вопрос в деталях.

◈ Метод 2: Использование iTertools.groupby ()

  • Itertools.groupby (ИТЕРАЛНЫЙ,) Функция создает итератор, который возвращает кортежи (ключ, групповой итератор) сгруппирован каждым значением ключ . Мы используем str.isalpha () Функция в качестве ключевой функции.
  • str.isalpha () Функция возвращает Правда Если строка состоит только из буквенных символов.

Решение

from itertools import groupby
s = "Finxter$#! Academy Python111Freelancing"
r=[]
res = [''.join(g) for _, g in groupby(s, str.isalpha)]
for item in res:
    if item.isalpha():
        r.append(item)
print(r)

Выход:

['Finxter', 'Academy', 'Python', 'Freelancing']

✨ Сценарий 3.

Если вы конкретно справляетесь с URL-адресами, вы бы хотели использовать встроенные библиотеки, которые имеют дело с URL.

Пример: Вы хотите удалить два = 20 из строки запроса, приведенной ниже:

s='http://www.domain.com/?s=some&two=20'

Желаемый выход:

http://www.domain.com/?s=some

Решение

  • Шаг 1: Проанализируйте весь URL.
  • Шаг 2: Извлечь Строка запроса.
  • Шаг 3: Преобразуйте его в Python Словарь Отказ
  • Шаг 4: Снимите ключ «два» из словаря.
  • Шаг 5: положите его обратно в строку запроса.
  • Шаг 6: Сшить URL обратно вместе.

Давайте посмотрим на следующую программу, которая демонстрирует точный процесс, как объяснено на вышеуказанных шагах. (Пожалуйста, следуйте комментариям в коде!)

import urllib.parse

# Step 1: parse the entire URL
parse_result = urllib.parse.urlsplit("http://www.example.com/?s=something&two=20")
# Step 2: Extract the query string
query_s = parse_result.query
# Step 3: Convert it to a Python dictionary
query_d = urllib.parse.parse_qs(parse_result.query)
# Step 4: remove the ['two'] key from the dictionary
del query_d['two']
# Step 5: Put it back to the query string
new_query_s = urllib.parse.urlencode(query_d, True)
# Step 6: Stitch the URL back together
result = urllib.parse.urlunsplit((
    parse_result.scheme, parse_result.netloc,
    parse_result.path, new_query_s, parse_result.fragment))
print(result)

Выход:

http://www.example.com/?s=something

Преимущество использования вышеуказанной процедуры заключается в том, что у вас больше контроля над URL. Например, если вы только хотели удалить Два Аргумент из строки запроса, даже если он произошел ранее в строке запроса ( «Два = 20 и S = что-то» ), это все равно будет функционально и работать идеально в порядке.

Заключение

В этой статье вы узнали некоторые важные концепции, касающиеся расщепления строки в Python. Выберите процедуру, которая соответствует вашим требованиям и реализует их соответственно, как продемонстрировано в этой статье с помощью многочисленных сценариев. Это приводит нас к концу этой статьи; Пожалуйста, Оставайтесь настроиться и Подписаться Для получения дополнительных решений и интересных дискуссий.

Куда пойти отсюда?

Достаточно теории, давайте познакомимся!

Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?

Практические проекты – это то, как вы обостряете вашу пилу в кодировке!

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

Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.

Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.

Присоединяйтесь к свободному вебинару сейчас!

Я профессиональный Python Blogger и Content Creator. Я опубликовал многочисленные статьи и создал курсы в течение определенного периода времени. В настоящее время я работаю полный рабочий день, и у меня есть опыт в областях, таких как Python, AWS, DevOps и Networking.

Вы можете связаться со мной @:

Оригинал: “https://blog.finxter.com/how-to-cut-a-string-in-python/”