Триває набір нової групи на курс Enterprise Patterns! Старт курсу 02.12.2024. Реєструйтеся зі знижкою 30% до 31.10.2024!
Дізнатися більше
30.09.2024
7 хвилин читання

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

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

Отже. Розглянемо все спочатку:

Що таке рядок в Python?

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

🚀 Готові прокачати навички та освоїти Python? Натисніть Записатися 👇👇👇👇 і почніть свій шлях до успіху вже сьогодні на спеціально розробленому авторському курсі Python менторинг! 💪
Записатись

Навіщо ж видаляти символи з рядка?

Є кілька причин для видалення:

  1. Очищення даних: При необхідності видалити зайві (небажані) символи з текстових даних перед обробкою. Також, Вам може бути необхідно в Python очистити рядок повністюю. Це теж сюди.
  2. Підготовка даних: Видалення символів, які, на Вашу думку, заважатимуть подальшій обробці даних.
  3. Форматування даних: Коли потрібно видалити пробіли, або спецсимволи, щоб привести текст до потрібного формату.
  4. Оптимізація: Важлива причина. Це видалення зайвих символів для зменшення розміру даних. Це досить важливо для продуктивності.
  5. Валідація вводу: У розробці часто виникає потреба видалити небажані символи з вводу користувача для запобігання помилок та атак (наприклад, SQL-ін’єкціях) 

Як видаляти символи з рядка?

Тепер поговоримо про методи видалення символів. Для вирішення цієї задачі, їх існує декілька:

Метод Python replace()

Використовується для заміни підрядків у рядку. Він поверне новий рядок, в якому всі вказані підрядки замінені на нові. Якщо ви хочете видалити символи взагалі, просто міняйте їх на порожній рядок.

    Цей метод має 3 параметри: 

    • old: Підрядок, який потребує зміни
    • new: Підрядок, на який потрібно змінити
    • count: Максимальна кількість замін. Цей параметр необов’язковий. Якщо його не вказати, зміняться всі входження.

    Особливості даного методу: 

    • Метод Python replace() не змінює оригінальний рядок. Він повертає новий рядок зі змінами, які були внесенні. 
    • Якщо підрядок old не знайдено в рядку, повернеться копія оригіналу без змін. 

    Приклади використання  replace(): 

    1. Проста заміна:
    text =Привіт, світ!
    
    new_text = text.replace(“світ,Всесвіт”)
    
    print(new_text) #виведе: Привіт, Всесвіт!
    1. Заміна з обмеженням кількості:
    text =яблуко яблуко яблуко
    
    new_text = text.replace(“яблуко,  “апельсин, 2)
    
    print(new_text) #виведе: апельсин апельсин яблуко
    1. Заміна символів:
    text =123123123123
    
    new_text = text.replace(“1,9”)
    
    print(new_text) #виведе: 923923923
    1. Заміна з використанням регулярних виразів.

    Це для більш складних замін. З використанням модуля re:

    import re
    
    text = “Привіт, світ!”
    
    new_text = re.sub(rсвіт,Всесвіт, text)
    
    print(new_text) #виведе: Привіт, Всесвіт!

    Отже. Метод replace() – дуже корисний метод для роботі з рядками в Python. Він дозволяє легко виконувати заміни підрядків.

    Метод Python  translate()

    Цей метод видаляє декілька символів одночасно. Але для цього спочатку створюється таблиця, яка визначає, які саме символи треба замінити, і на які саме символи їх міняти. Ця таблиця створюється за допомогою методу str.maketrans()

    У метода translate() є обов’язковий параметр table. Він може бути як словником, так і таблицею перекладу, яка описує, як виконувати зміну. 

    Приклади використання translate():

    1. Заміна символів за допомогою словника:
    mydict = {83: 80} /ASCII код 83 (S) заміняється на 80 (Р)
    
    txt =Hello Sam!
    
    print(txt.translate(mydict)) #виведеHello Pam!
    1. Створення таблиці перекладу за допомогою maketrans():
    txt =Hello Sam!
    
    mytable = str.maketrans(“S,P”)
    
    print(txt.translate(mytable)) #виведе  “Hello Pam!
    1. Заміна кількох символів:
    txt =Hi Sam!
    
    x =mSa
    
    y =eJo
    
    mytable = str.marketrans(x, y)
    
    print(txt. translate(mytable))#виведеHi Joe!
    1. Видалення символів:
    txt =Good night Sam!
    
    x =mSa
    
    y =eJo
    
    z =odnght
    
    mytable = str.maketrans(x, y, z)
    
    print(txt.translate(mytable)) # Виведе "Ge Joe!"
    1. Використання словника для видалення символів:
    txt = "Good night Sam!"
    
    mydict = {109: 101, 83: 74, 97: 111, 111: None, 100: None, 110: None, 103: None, 104: None, 116: None}
    
    print(txt.translate(mydict))  # Виведе "Ge Jo!"

    Отже. Метод translate() – це дуже потужний інструмент для операцій та маніпуляцій над рядками. Особливо при виконанні складних змін або видалень. 

    Зрізи (slicing)

    Символи з рядка можна видаляти за допомогою зрізів. Це корисно, коли Ви хочете видалити символ на певній позиції.

    Ознайомимося з параметрами  зрізів:

    • start: індекс, з якого починається зріз (включно)
    • stop: індекс, на якому зріз закінчується (не включно)
    • step: крок, з яким обираються символи. Цей параметр не обов’язковий.

    Приклад використання slicing:

    1. Видалення символа за індексом:

    Видаляємо символ з певним індексом. Наприклад кому (символ за індексом 5):

    s = "Hello, World!"
    
    index_to_remove = 5
    
    new_string = s[:index_to_remove] + s[index_to_remove + 1:]
    
    print(new_string)  # Виведе "Hello World!"
    1. Використання зрізів з умовою:
    s = "Hello, World!"
    
    char_to_remove = ","
    
    new_string = ''.join([char for char in s if char != char_to_remove])
    
    print(new_string)  # Виведе "Hello World!"
    1. Видалення символа на парних позиціях

    Використання зрізів с кроком. Для видалення символів на парних позиціях. Це аналогічно працює і для непарних позицій.

    s = "Hello, World!"
    
    new_string = s[::2] /для непарних s[1::2]
    
    print(new_string)  # Виведе "Hlo ol!"

    Метод  slicing дозволяє досить гнучко маніпулювати рядками та видаляти символи за допомогою зрізів.

    Підпишіться на наш Ютуб-канал! Корисні відео для програмістів чекають на вас! YouTube
    Оберіть свій курс програмування! Шлях до кар’єри програміста починається тут! Подивитись

    Метод Python strip()

    Видаляє задані символи з початку та кінця рядка. 

    Параметри даного методу:

    • string: рядок, з якого ви хочете видалити символи
    • [chars]: аргумент, який вказує на символи, які потрібно видалити. Цей аргумент не є обов’язковим. Якщо його не вказати, то за замовчуванням видаляються пробіли.

    У цього методу є важливі моменти:

    • Метод strip() не змінить оригінальний рядок. Він поверне новий рядок без вказаних на видалення символів.
    • Працює тільки з початковими і кінцевими символами рядка. Всередині рядка він символи не видаляє.
    • Якщо не вказати символи для видалення, метод strip() видалить за замовчуванням всі пробіли

    Приклади використання strip():

    1. Видалення пробілів з обох кінців рядка:
    text = "   Привіт, світ!   "
    
    new_text = text.strip()
    
    print(new_text)  # Виведе "Привіт, світ!"
    1. Видалення вказаних символів:
    text = "***Приклад***"
    
    new_text = text.strip("*")
    
    print(new_text)  # Виведе "Приклад"
    1. Видалення кількох вказаних символів:
    text = "XOXOXOПривіт, світ!XOXOXO"
    
    new_text = text.strip("XO")
    
    print(new_text)  # Виведе "Привіт, світ!"

    Видалення символів за допомогою циклу

    Створення нового рядка, пропускаючи небажані символи.

    Приклад використання циклу

    Припустимо, що у нас є рядок, і ми хочемо видалити з нього всі голосні. 

    Щоб пройти через кожен символ у вхідному рядку input_string, використовуємо у цьому прикладі цикл for. Якщо символ не є голосною (тобто не входить до рядка vowels, то ми додаємо його до рядка результату – result_string.

    # Вхідний рядок
    
    input_string = "Hello, World!"
    
    # Символи, які ми хочемо видалити
    
    vowels = "aeiouAEIOU"
    
    # Рядок результату
    
    result_string = ""
    
    # Проходимо через кожен символ у вхідному рядку
    
    for char in input_string:
    
        # Якщо символ не є голосною, додаємо його до результатуючого рядка
    
        if char not in vowels:
    
            result_string += char
    
    print(result_string)

    Метод циклу можна використовувати для видалення будь-яких символів з рядка. Для цього необхідно просто змінювати значення vowels на ті символи, які ви хочете видалити.

    Висновок

    Знання того, як видалити символи з рядка Python – це важливий скіл, яких спрощює обробку текстових даних. Кожен з розглянутих нами методів має свої переваги та підходить для різних ситуацій. Знання всіх інструментів надає академія FoxmindEd  на спеціально розробленому авторському курсі Python менторинг, який допоможе вам ефективно працювати з текстовими даними та вирішувати різноманітні завдання в Python. 

    FAQ
    Що таке рядок у Python?

    Рядок — це послідовність символів, що може включати літери, цифри, пробіли та інші символи.

    Навіщо видаляти символи з рядка?

    Для очищення даних, форматування, підготовки до обробки або валідації вводу.

    Як використовувати метод replace() для видалення символів?

    Замініть небажані символи на порожній рядок за допомогою replace('old', '').

    Як працює метод translate()?

    Використовує таблицю перекладу для заміни або видалення кількох символів одночасно.

    Чи можна видалити символ за допомогою зрізів?

    Так, можна видалити символи, використовуючи зрізи для вибору частини рядка без небажаних символів.

    Що робить метод strip()?

    Видаляє вказані символи (або пробіли за замовчуванням) з початку та кінця рядка.

    Розкажіть про свій досвід роботи з видаленням символів з рядка Python! Якщо є питання – ставте!

    Додати коментар

    Ваш імейл не буде опубліковано. Обов'язкові поля відзначені *

    Зберегти моє ім'я, імейл та адресу сайту у цьому браузері для майбутніх коментарів