Hur tar man bort sista tecken från Python String?

By rik

Olika Metoder för att Avlägsna Sista Tecknet i en Sträng i Python

Utforska olika tillvägagångssätt för att eliminera det sista tecknet i en sträng med hjälp av Python.

Använda Skivning

Python erbjuder stöd för segmentering med negativa index i kombination med positiv skivning. Negativa index börjar från -1 och fortsätter till -(strängens längd). Vi kommer att utnyttja den negativa skivningen för att selektivt hämta element från slutet av en iterabel.

  • Indexet -1 refererar till det sista elementet i en iterabel.
  • Indexet -2 ger dig det näst sista elementet i iterabeln.
  • Denna logik fortlöper mot det första elementet.

Ett illustrativt exempel:

      name="adminvista.com"
      print(name[-1])
      print(name[-len(name)])
    

Ovanstående kodstycke demonstrerar hur man använder negativ indexering för att hämta det sista respektive första tecknet från strängen.

Hur avlägsnar vi då det sista elementet i strängen med hjälp av skivning? Med bara en kodrad, faktiskt. Vi vet hur man extraherar delsträngar med skivning, så låt oss tillämpa samma princip med negativa index för att radera det sista tecknet i strängen.

  • Skiva strängen från början till och med elementet precis före det sista.
      buggy_name="GeekflareE"
      name = buggy_name[:-1]
      print(name)
    

Fokusera på den andra raden i koden, där magin sker. Precis som vid traditionell skivning, extraherar vi en delsträng från startindexet till och med det näst sista indexet, eftersom skivningen exkluderar det andra givna indexelementet.

Om du kör ovanstående kod, kommer den att ge ut ”Geekflare”.

Använda rstrip()

Strängmetoden rstrip() är designad för att ta bort tecken från den högra sidan av en sträng. Det gör den lämplig för att eliminera det sista tecknet i en sträng, allt med en enda kodrad.

  • Genom att ge det sista tecknet till rstrip()-metoden, returneras en sträng där det sista tecknet är borttaget.

Här är koden:

     buggy_name="GeekflareE"
     name = buggy_name.rstrip(buggy_name[-1])
     print(name)
   

Vi skickar det sista tecknet i strängen till rstrip()-metoden, vilket tar bort just detta tecken och returnerar en ny sträng utan det. Om du kör koden kommer den skriva ut ”Geekflare”.

Praktiskt Användningsfall – Ta Bort Sista Ordet

Låt oss nu applicera de metoder vi diskuterat på ett konkret exempel.

Antag att vi har en fil med flera rader text och att vi behöver ta bort det sista ordet från varje rad i denna fil.

Följ dessa steg för att skapa programmet:

  • Skapa en fil med namnet random_text.txt och fyll den med några rader text.
  • Initiera en variabel, updated_data, som en tom sträng.
  • Öppna filen med hjälp av with open() i läs- och skrivläge.
  • Läs filens innehåll med metoden readlines().
  • Iterera över varje rad i det lästa innehållet.
    • Dela upp textraden i ord med hjälp av metoden split().
    • Ta bort det sista ordet med någon av de tidigare nämnda metoderna.
    • Sätt ihop de återstående orden till en sträng.
    • Lägg till den resulterande strängen till updated_data.
  • Radera filens nuvarande innehåll genom seek() och truncate().
  • Skriv den nya, bearbetade datan till filen via write().

Filen random_text.txt innehåller denna data:

     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.
   

Här är den kompletta koden:

     updated_data=""
     # öppna filen
     with open('random_text.txt', 'r+') as file:
         # läs filinnehållet
         file_content = file.readlines()
         # iterera genom innehållet
         for line in file_content:
             # ta bort sista ordet
             updated_line=" ".join(line.split(' ')[:-1])
             # lägg till data i variabeln
             updated_data += f'{updated_line}n'
         # ta bort den gamla datan
         file.seek(0)
         file.truncate()
         # skriv den nya datan
         file.write(updated_data)
   

Om du kör den här koden på ovanstående fil, kommer innehållet i random_text.txt att uppdateras till:

      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.
   

Hoppas du har tyckt att denna genomgång var till hjälp.

Lycka till med kodningen! 🙂

Kolla gärna även upp Substring Operations i Python.

Tyckte du om artikeln? Dela den gärna vidare!