Rimuovi il carattere finale dalla stringa


510

Supponiamo che la mia stringa sia lunga 10 caratteri.

Come rimuovo l'ultimo personaggio?

Se la mia stringa è "abcdefghij"(non voglio sostituire il 'j'carattere, poiché la mia stringa può contenere più 'j'caratteri) voglio solo che l'ultimo carattere scompaia. Indipendentemente da ciò che è o quante volte si verifica, devo rimuovere l'ultimo carattere dalla mia stringa.


Risposte:


835

Semplice:

st =  "abcdefghij"
st = st[:-1]

C'è anche un altro modo che mostra come si fa con i passaggi:

list1 = "abcdefghij"
list2 = list(list1)
print(list2)
list3 = list2[:-1]
print(list3)

Questo è anche un modo con l'input dell'utente:

list1 = input ("Enter :")
list2 = list(list1)
print(list2)
list3 = list2[:-1]
print(list3)

Per far sì che porti via l'ultima parola in un elenco:

list1 = input("Enter :")
list2 = list1.split()
print(list2)
list3 = list2[:-1]
print(list3)

3
Sì, st[-1]è solo l'ultimo personaggio dist
Cyrille il

5
In realtà quella fetta funzionerà comunque anche se stè vuota. Bene, restituirà ancora una stringa vuota, ma non otterrai un errore.
kindall

1
Cosa succede se si dispone di un elenco di parole e si desidera eliminare l'ultimo carattere di ogni parola? [blu, rosso, verde] => [blu, re, gree]?
Jellyse,

5
[i[:-1] for i in ['blue','red','green']]
Cyrille,

3
Guardando gli esempi, vale la pena ricordare che gli elenchi sono mutabili e che il list.pop()metodo è la strada da percorrere quando si tratta di elenchi, in quanto rimuove l'ultimo elemento in atto O(1), mentre lo [:-1]slicing crea una copia di un elenco senza l'ultimo elemento nel O(n-1)tempo più O(n-1)spazio. Le stringhe sono immutabili, quindi nulla da aggiungere.
Dmitry,

19

Quello che stai tentando di fare è un'estensione di slicing delle stringhe in Python:

Supponi che tutte le stringhe siano di lunghezza 10, ultimo carattere da rimuovere:

>>> st[:9]
'abcdefghi'

Per rimuovere gli ultimi Ncaratteri:

>>> N = 3
>>> st[:-N]
'abcdefg'
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.