Строка Python — это тип данных, используемый для представления текста. Это неизменяемая последовательность символов Юникода. Строки можно создавать, заключая текст в одинарные(‘ ‘), двойные(” “) или тройные(”’ ”’ или “”” “””) кавычки.

String1 = 'Welcome to PythonGuides!'
String2 = "Hello, Programmer!"
String3 = '''Hello,
Programmer!'''
String4 = """Hello,
Programmer!"""

print(type(String1))
print(type(String2))
print(type(String3))
print(type(String4))

Выход: проверка типов каждой созданной нами переменной.


Как удалить функцию в строке Python

Все созданные нами переменные имеют строковый тип данных в Python.

Хотя это правда, что строки в Python неизменяемы (это означает, что мы не можем изменить существующую строку на месте), мы всегда можем создать новую строку, которая представляет желаемую модификацию исходной строки.

Содержание

Методы

В Python существует несколько различных методов для удаления нескольких символов из строки Python. Давайте рассмотрим их поочередно на наглядных примерах.

Метод 1: с помощью нарезки строк

Нарезка строк в Python позволяет нам извлекать части строки на основе индексов.

Синтаксис:

string[start:stop:step]
Имя Описание
start Начальный индекс среза. Его значение по умолчанию — 0.
stop Срез доходит до этого индекса, но не включает его. Его значение по умолчанию — конец строки.
step Количество индексов между элементами в срезе. Его значение по умолчанию — 1.

Чтобы удалить определенные символы с помощью срезов, мы обычно объединяем срезы, пропуская нежелательные символы.

Случай 1: используя нарезку строки

Если мы знаем индекс символа, который хотим удалить, мы можем сделать это, объединив два фрагмента: один фрагмент перед нежелательным символом и один фрагмент после в строке Python.

Например, давайте рассмотрим сценарий, в котором у нас есть строка в Python, представляющая почтовый индекс местоположения в США. Почтовые индексы в США обычно состоят из 5 цифр.

В этом примере предположим, что мы хотим удалить дефис(-) из формата ZIP+4, чтобы сделать его непрерывным 9-значным числом.

zip_code = "12345-6789"
new_zip = zip_code[:5] + zip_code[6:]
print(new_zip)

Вывод: в этой строке Python дефис находится на 5-й позиции(помните, Python использует индексацию с отсчетом от 0). Чтобы удалить дефис, мы можем взять все символы перед ним и все символы после него, а затем объединить их вместе. Объединив эти две подстроки, мы эффективно удаляем дефис.

123456789

Python удаляет символ из строки

Случай 2: удаление нескольких символов из строки в известных позициях

Чтобы удалить несколько символов из строки Python, мы можем создать несколько фрагментов, которые «перепрыгивают» через каждый нежелательный символ, а затем объединяют эти фрагменты вместе. Каждый фрагмент захватывает те части строки Python, которые мы хотим сохранить.

Например, предположим, что у нас есть номер телефона типа «(123) – 456 – 7890», и мы хотим удалить лишние пробелы и тире, чтобы получить его в нужном формате(123) 456-7890.

Phone_number = "(123) - 456 - 7890"

formatted_number = Phone_number[1:4] + Phone_number[8:11] + Phone_number[14:]
print(formatted_number)

Вывод: в этом примере мы использовали нарезку строк Python, чтобы сохранить нужные нам части исходной строки Python и пропустить ненужные символы.

1234567890

используя разрезание строк

Способ 2: с помощью цикла for

Удаление нескольких символов из строки с помощью цикла for обычно включает в себя перебор строки и проверку каждого символа, чтобы определить, следует ли его сохранить или отбросить. После определения мы можем построить новую строку с нужными символами.

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

s = "Hello, welcome to PythonGuides.com"
chars_to_remove = "aeiou"
new_str = ""

for char in s:
    if char not in chars_to_remove:
        new_str += char
print(new_str)

Вывод: мы используем цикл for для перебора строки, а затем с помощью условного оператора проверяем наличие гласных.

Hll, wlcm t PythnGds.cm

использование цикла for для удаления нескольких символов

Таким образом, мы используем цикл for для удаления нескольких символов из строки Python.

Метод 3: с помощью метода replace()

Метод replace() в Python используется для замены подстроки строки другой подстрокой.

Основной синтаксис этого метода:

string.replace(old, new, count)
Имя Описание
old Это подстрока, которую мы хотим заменить.
new Это подстрока, которую мы заменим на старую.
count (необязательно) — максимальное количество вхождений для замены. Если этот параметр опущен или отсутствует, все вхождения будут заменены.

Однако метод replace() предназначен для замены одной подстроки за раз. Если мы хотим удалить несколько символов(или подстрок) из строки в Python с помощью replace(), нам придется вызывать этот метод несколько раз, либо используя цепочки вызовов, либо посредством итерации.

Пример: представьте, что мы извлекли текст с веб-сайта о самых популярных туристических направлениях США. Однако из-за некоторых проблем с форматированием во время извлечения были включены некоторые нежелательные символы или символы. Наша задача — очистить этот текст.

text = "The top destinations in the USA are: [New York City], {Los Angeles},  and, |Miami|."
chars_to_remove = ['[', ']', '{', '}', '', '|']
for char in chars_to_remove:
    text = text.replace(char, '')
print(text)

Вывод: мы замечаем, что названия городов окружены нежелательными символами: [ ], { }, и | | и нам нужно удалить эти несколько символов из этой строки Python. Начиная с начальной строки, мы перебираем список символов, которые нужно удалить.

The top destinations in the USA are: New York City, Los Angeles, San Francisco and, Miami.

Метод 3: с помощью метода replace()

Метод 4: для удаления символа из строки

Процесс использования генератора списка для удаления символов включает в себя разбиение строки Python на список символов, фильтрацию нежелательных символов с помощью генератора списка, а затем повторную сборку строки в Python.

Например, представьте, что мы готовим отчет по списку штатов США, принявших участие в определенном опросе. Мы получаем список в строке Python, но, к сожалению, строка содержит некоторые нежелательные символы(например, цифры и специальные символы). Нам нужно удалить эти посторонние символы, чтобы иметь четкий список состояний с помощью программы Python.

States = "Califor1nia, Nev*ada, 3Oregon, 45Utah, Ar#izona"

list_of_chars = [char for char in States]
filtered_chars = [char for char in list_of_chars if char.isalpha() or char == ' ' or char == ',']
clean_states_list = ''.join(filtered_chars)

print(clean_states_list)

Вывод: мы будем использовать метод Python str.isalpha(), который возвращает True, если символ является буквой, и False в противном случае. Мы также разрешим использование пробелов и запятых, чтобы состояния оставались разделенными.

Используя понимание списка, мы перебрали каждый символ исходной строки. Мы отфильтровали нежелательные символы, убедившись, что каждый символ в новом списке представляет собой букву, пробел или запятую. Наконец, мы использовали метод join(), чтобы объединить список отфильтрованных символов обратно в чистую строку.

California, Nevada, Oregon, Utah, Arizona

Метод 4: для удаления символа из строки

Метод 5: с помощью метода Translate()

Метод строк Translate() в Python — это мощный инструмент для выполнения преобразований на уровне символов, а в сочетании с функцией maketrans() он становится универсальным методом удаления и замены символов.

Метод Translate() возвращает строку, в которой некоторые указанные символы заменены символами, описанными в таблице перевода. Эта таблица перевода обычно создается с помощью метода str.maketrans(). Может принимать до трёх аргументов:

Имя Описание
х Если указан только один аргумент, это должен быть словарь с порядковыми номерами Юникода(целыми значениями) в качестве ключей и их заменой в качестве значений.
х и у Если указаны два аргумента, они должны быть строками одинаковой длины. Каждый символ в x будет заменен символом в той же позиции в y.
х, у и g Если указаны три аргумента, каждый символ в третьем аргументе z сопоставляется со значением None.

Список аргументов, принимаемых методом str.maketrans() в Python.

Например, представьте, что у нас есть строка в Python, которая представляет список фильмов и их кассовые сборы в миллионах. Список представлен в виде разделенных запятыми пар названий фильмов и их кассовых сборов.

Однако по какой-то причине в кассовые сборы попали знак доллара($) и запятые(,). Наша цель — удалить эти ненужные символы, чтобы облегчить обработку чисел.

movies_data = "The Avengers $1,234.56m, Star Wars: The Force Awakens $987,654.32m"
remove_chars = "$,"
translation_table = str.maketrans('', '', remove_chars)
cleaned_data = movies_data.translate(translation_table)
print(cleaned_data)

Вывод: у нас есть строка Python remove_chars, содержащая символы, которые мы хотим удалить, а именно($) и(,). Мы используем str.maketrans (», », Remove_chars) для создания таблицы перевода. Эта таблица по сути сопоставляет символы($) и(,) со значением None.

Затем мы вызываем функцию Translate() для нашей строки Movies_data, передавая таблицу перевода. Это вернет новую строку с указанными символами, удаленными в Python.

The Avengers 1234.56m Star Wars: The Force Awakens 987654.32m

Python удаляет несколько символов из строки с помощью метода translate()

Метод 6: с помощью регулярного выражения

Регулярные выражения — мощный инструмент обработки текста. Они позволяют выполнять сопоставление с образцом и сложные манипуляции со строками в Python.

В Python модуль re предоставляет функции и классы для работы с регулярными выражениями. Одной из наиболее часто используемых функций модуля re является re.sub(), которая заменяет подстроки, соответствующие заданному шаблону.

Например, мы управляем отзывами клиентов магазина техники в Кремниевой долине с помощью Python. Иногда клиенты ссылаются в комментариях на коды городов «408» и «650». В целях конфиденциальности мы решили удалить эти ссылки на коды городов перед публикацией отзыва.

import re

feedback = "The product is great. But can you call me back at 408?\nI had issues with the device. My area code is 650."
filtered_feedback = re.sub('408|650', '', feedback)
print(filtered_feedback)

Выход:

The product is great. But can you call me back at ?
I had issues with the device. My area code is .

Python удаляет символ из регулярного выражения строки

Метод 7: используйте методы Split() и join()

Метод Split() в основном используется для разделения строки на основе указанного разделителя. Он возвращает список подстрок в Python. А метод join() — это строковый метод, который принимает список строк и объединяет их в одну строку в Python.

Например, представьте, что у нас есть сеть ресторанов по всей территории США. Мы собираем отзывы клиентов посредством онлайн-обзоров. Эти обзоры хранятся в строках в Python и часто содержат лишние знаки препинания, которые мы хотели бы удалить, чтобы упростить анализ текста.

def clean_review(review):
    chars_to_remove = ['!', '?', '.']
    for char in chars_to_remove:
        review = ''.join(review.split(char))
    return review
review = "The burger was amazing! However, the service was slow. Would visit again?"
cleaned_review = clean_review(review)
print(cleaned_review)

Вывод: операция удаления перебирает все символы в строке и в конце все объединяется в новую строку в Python.

The burger was amazing However, the service was slow Would visit again

как использовать функции Split() и join() для удаления нескольких символов

Метод 8: с помощью функции filter()

Функция filter() в Python позволяет фильтровать элементы итерации на основе функции, возвращающей True или False. Для строк Python это можно использовать для фильтрации(или сохранения) определенных символов.

Например, представьте, что мы работаем с Департаментом транспортных средств (DMV) США. DMV предоставляет нам список номерных знаков на Python, но из-за системной ошибки на некоторых номерных знаках присутствуют нежелательные символы(*, #, & и @). Нам поручено очистить эти номерные знаки с помощью Python.

def remove_unwanted_chars(plate):
    unwanted_chars = ['*', '#', '&', '@']
    return ''.join(filter(lambda char: char not in unwanted_chars, plate))

license_plate = "AB*#12@34"
cleaned_license_plate = remove_unwanted_chars(license_plate)
print(cleaned_license_plate)

Вывод: в этом примере мы создали лямбда-функцию, которая будет проверять каждый символ в строке, затем функция filter() будет фильтровать все проверенные символы и, наконец, функция join() объединит все символы строки. в одну строку.

AB1234

Как использовать функцию filter()

Метод 9: удаление нескольких символов из строки

В Python метод Strip() в основном используется для удаления начальных и конечных символов (пробелов по умолчанию) из строки Python. Однако функцию Strip() также можно использовать для удаления других начальных и конечных символов, указав набор удаляемых символов.

Случай 1: использование функции Strip() для удаления буквы из строки

В этом случае мы удалим символы из первой и последней строки в Python. И мы можем использовать функцию Split() для удаления нескольких символов из строки Python.

Например, представьте, что мы обрабатываем данные из старой базы данных, а имена состояний в адресах хранятся в двух полосах(|) и других специальных символах. Например, Нью-Йорк обозначается как *#*|NY|*#. И мы хотим удалить эти полосы(|) и другие специальные символы.

address_old_format = "*#*|NY|*#"
cleaned_address = address_old_format.strip('*#|')
print(cleaned_address)

Вывод: символы удаляются с обеих сторон строки Python.

NY

Использование функции Split()

Случай 2: с помощью функции lstrip()

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

Например, представьте, что мы работаем со списком номеров ISBN книг в базе данных библиотеки США через Python. Эта библиотека использует уникальную систему, в которой номера ISBN авторов из США начинаются с «US», за которым следует фактический ISBN. Нам нужно удалить префикс «США» из номеров ISBN, но только если они существуют.

isbn_with_prefix = "US1234567890"
isbn_without_prefix = isbn_with_prefix.lstrip("US")
print(isbn_without_prefix)

Вывод: здесь мы просто использовали функцию lstrip() в Python для удаления символов из строки Python.

1234567890

использование функции lstrip()

Таким образом, мы можем удалить первые два символа из строки в Python с помощью функции lstrip().

Случай 3: с помощью функции rstrip()

Функция rstrip() используется для удаления конечных символов с правой стороны строки в Python.

Например, в некоторых базах данных почтовые индексы были ошибочно введены с дополнительным двухбуквенным сокращением штата, добавленным в конце, и мы хотим удалить эти последние два символа, если они являются буквами.

def clean_zip(zip_code):
    if zip_code[-2:].isalpha():
        return zip_code.rstrip(zip_code[-2:])
    return zip_code

zip_with_state = "12345NY"
cleaned_zip = clean_zip(zip_with_state)
print(cleaned_zip)

Вывод: здесь мы определяем функцию (clean_zip) в Python, где мы будем удалять несколько символов из строки Python. Мы используем условный оператор if с разрезанием строк и функцию isalpha().

12345

используем условный оператор if с разрезанием строк и функцию isalpha()

Таким образом, мы можем использовать функцию rstrip() для удаления последних двух символов из строки в Python.

Добавить комментарий