Descoperă diverse metode prin care poți șterge ultimul caracter dintr-un șir de text în Python.
Utilizarea feliilor (Slicing)
Limbajul Python permite utilizarea indexării negative, pe lângă cea pozitivă, atunci când folosim feliile. Indicii negativi încep de la -1 și merg până la -(lungimea_obiectului_iterabil). Ne vom folosi de feliile cu indici negativi pentru a accesa elemente de la finalul unui obiect iterabil.
- Indicele -1 ne oferă ultimul element din obiectul iterabil.
- Indicele -2 ne oferă penultimul element din obiectul iterabil.
- Și așa mai departe, până la primul element.
Să vedem un exemplu practic:
nume = "tipstrick.ro" print(nume[-1]) print(nume[-len(nume)])
Codul de mai sus va afișa ultimul și primul caracter din șirul de text, folosind indexarea negativă.
Cum putem elimina ultimul caracter dintr-un șir folosind feliile? Este nevoie de o singură linie de cod. Știm deja cum să extragem o porțiune dintr-un șir folosind feliile. Vom aplica aceeași tehnică, dar cu indici negativi, pentru a elimina ultimul caracter dintr-un șir.
- Vom extrage o felie din șir, de la început până la penultimul element.
nume_gresit = "GeekflareE" nume = nume_gresit[:-1] print(nume)
Să ne uităm cu atenție la a doua linie de cod. Aceasta este linia cheie. Ca la orice felie obișnuită, aceasta extrage o porțiune din șir, de la indicele de start până la cel specificat (cel din dreapta), dar felierea ignoră elementul de la al doilea indice dat.
Vei obține „Geekflare” ca rezultat dacă rulezi codul de mai sus.
Metoda rstrip()
Metoda rstrip()
a clasei string
elimină caractere de la capătul din dreapta al șirului, caractere specificate ca argument. Așadar, o putem folosi pentru a elimina ultimul element al unui șir. Nu este nevoie de mai mult de o linie de cod pentru a șterge ultimul caracter.
- Furnizează ultimul element metodei
strip()
și aceasta va returna o copie a șirului, dar fără ultimul caracter.
Iată un exemplu de cod:
nume_gresit = "GeekflareE" nume = nume_gresit.rstrip(nume_gresit[-1]) print(nume)
Am oferit ultimul caracter al șirului ca argument metodei strip()
. Aceasta șterge ultimul caracter din șir și returnează o copie a șirului inițial, fără ultimul caracter.
Va afișa „Geekflare” în consolă dacă rulezi codul.
Exemplu practic – eliminarea ultimului cuvânt
Vom aplica cunoștințele acumulate în secțiunile anterioare într-un exemplu practic.
Să presupunem că avem un fișier care conține mai multe rânduri de text și că trebuie să eliminăm ultimul cuvânt din fiecare rând.
Urmează pașii de mai jos pentru a scrie programul:
- Creează un fișier numit
random_text.txt
și adaugă câteva rânduri de text. - Inițializează o variabilă, de exemplu
date
, cu un șir de caractere gol. - Deschide fișierul folosind o instrucțiune
with open()
, în mod citire și scriere. - Citește conținutul fișierului folosind metoda
readlines()
. - Parcurge fiecare rând din conținutul citit:
- Împarte linia în cuvinte, folosind metoda
split()
. - Elimină ultimul cuvânt, folosind una dintre metodele de mai sus.
- Reunește cuvintele rămase într-un șir.
- Adaugă șirul rezultat la variabila
date
.
- Împarte linia în cuvinte, folosind metoda
- Elimină datele vechi din fișier folosind metodele
seek()
șitruncate()
. - Scrie datele actualizate în fișier, folosind metoda
write()
.
Fișierul conține următoarele date:
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.
Iată codul:
date_actualizate = "" # deschiderea fișierului with open('random_text.txt', 'r+') as fisier: # citirea conținutului fișierului continut_fisier = fisier.readlines() # parcurgerea conținutului for linie in continut_fisier: # eliminarea ultimului cuvânt linie_actualizata = " ".join(linie.split(' ')[:-1]) # adăugarea datelor la variabilă date_actualizate += f'{linie_actualizata}\n' # eliminarea datelor vechi fisier.seek(0) fisier.truncate() # scrierea noilor date fisier.write(date_actualizate)
Dacă execuți codul de mai sus cu fișierul dat ca exemplu, fișierul va conține următoarele date actualizate:
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.
Sper că acest tutorial ți-a fost util!
Spor la codat! 😊
Nu uita să verifici și articolul despre Operații cu subșiruri în Python.
Ți-a plăcut acest articol? Ce zici de o distribuire?