Різні підходи до усунення останнього символу в рядках Python
Давайте розглянемо декілька ефективних методів видалення останнього знака з рядка в Python.
Застосування зрізів
Python дозволяє використовувати зрізи з від’ємними індексами поряд з додатними. Від’ємні індекси відраховуються від -1 до -(довжина_послідовності). Це дає можливість легко отримувати елементи з кінця ітерованої структури.
- Індекс -1 вказує на останній елемент.
- Індекс -2 – на передостанній елемент.
- І так далі, доки не дійдемо до першого елемента.
Розглянемо на прикладі:
name="techukraine.net" print(name[-1]) print(name[-len(name)])
У цьому коді ми виводимо на екран останній і перший символи рядка, використовуючи від’ємне індексування.
Як же видалити останній символ рядка, використовуючи зрізи? Дуже просто. Ми вже знаємо, як отримувати підрядки за допомогою зрізів. Тепер застосуємо цей підхід із від’ємними індексами.
- Зрізаємо рядок від початку до передостаннього елемента.
buggy_name="GeekflareE" name = buggy_name[:-1] print(name)
Зверніть увагу на другий рядок коду. Він є ключовим. Як і звичайне нарізання, він вибирає підрядок, починаючи з початкового індексу і до передостаннього елемента, оскільки другий індекс не включається в результат.
Результатом виконання цього коду буде “Geekflare”.
Використання методу rstrip
Метод рядків rstrip видаляє символи з правого боку рядка. Це зручний спосіб видалити останній символ рядка, не вдаючись до складних маніпуляцій.
- Передаємо останній елемент рядка в метод strip, який повертає рядок без останнього символу.
Розглянемо приклад:
buggy_name="GeekflareE" name = buggy_name.rstrip(buggy_name[-1]) print(name)
Ми передаємо останній символ рядка методу strip. Він видаляє цей символ і повертає новий рядок без нього.
В результаті отримаємо той самий рядок “Geekflare”.
Практичне застосування: усунення останнього слова
Давайте використаємо отримані знання для вирішення практичної задачі.
Припустимо, у нас є текстовий файл, і нам потрібно видалити останнє слово з кожного рядка.
Для цього нам потрібно виконати наступні кроки:
- Створити файл random_text.txt з кількома рядками тексту.
- Ініціалізувати змінну для зберігання оновленого тексту як порожній рядок.
- Відкрити файл у режимі читання та запису використовуючи оператор with.
- Прочитати рядки з файлу за допомогою readlines.
- Пройтись циклом по кожному рядку:
- Розбити рядок на слова використовуючи метод split.
- Усунути останнє слово використовуючи один із вищезгаданих методів.
- Об’єднати слова назад в рядок.
- Додати рядок до змінної з оновленим текстом.
- Очистити файл за допомогою seek і truncate.
- Записати оновлений текст у файл за допомогою методу write.
Припустимо, наш файл містить наступні рядки:
This is a sample line for testing. LastWord. This is a sample line for testing. KillingIt. This is a sample line for testing. RandomWord. This is a sample line for testing. DeleteIt. This is a sample line for testing. RemovingIt.
Ось код, який виконає необхідні дії:
updated_data="" # відкриваємо файл with open('random_text.txt', 'r+') as file: # читаємо вміст файлу file_content = file.readlines() # перебираємо рядки for line in file_content: # видаляємо останнє слово updated_line=" ".join(line.split(' ')[:-1]) # додаємо оновлений рядок до змінної updated_data += f'{updated_line}\n' # очищуємо старі дані file.seek(0) file.truncate() # записуємо нові дані file.write(updated_data)
Після виконання цього коду, вміст файлу буде наступним:
This is a sample line for testing. This is a sample line for testing. This is a sample line for testing. This is a sample line for testing. This is a sample line for testing.
Сподіваємося, цей матеріал був корисним.
Вдалого кодування! 🙂
Також ознайомтеся з іншими операціями над рядками в Python.
Сподобалась стаття? Поділіться нею!