Hapus karakter terakhir dari string

510

Katakanlah string saya panjangnya 10 karakter.

Bagaimana cara menghapus karakter terakhir?

Jika string saya "abcdefghij"(saya tidak ingin mengganti 'j'karakter, karena string saya dapat berisi beberapa 'j'karakter) Saya hanya ingin karakter terakhir hilang. Terlepas dari apa itu atau berapa kali itu terjadi, saya harus menghapus karakter terakhir dari string saya.

pengguna1675111
sumber

Jawaban:

835

Sederhana:

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

Ada juga cara lain yang menunjukkan bagaimana hal itu dilakukan dengan langkah-langkah:

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

Ini juga cara dengan input pengguna:

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

Untuk membuatnya menghilangkan kata terakhir dalam daftar:

list1 = input("Enter :")
list2 = list1.split()
print(list2)
list3 = list2[:-1]
print(list3)
Cyrille
sumber
3
Ya, st[-1]hanya karakter terakhir darist
Cyrille
5
Sebenarnya irisan itu akan tetap bekerja walaupun stkosong. Yah, itu akan mengembalikan string kosong, tetapi Anda tidak akan mendapatkan kesalahan.
hati
1
Bagaimana jika Anda memiliki daftar kata dan Anda ingin menghapus karakter terakhir dari setiap kata? [biru, merah, hijau] => [blu, re, gree]?
Jellyse
5
[i[:-1] for i in ['blue','red','green']]
Cyrille
3
Melihat contoh-contoh, perlu disebutkan bahwa daftar bisa berubah dan list.pop()metode itu adalah cara untuk pergi ketika berhadapan dengan daftar, karena menghapus item terakhir di tempat O(1), sementara [:-1]mengiris membuat salinan daftar tanpa elemen terakhir dalam O(n-1)waktu plus O(n-1)ruang. String tidak dapat diubah - jadi tidak ada yang ditambahkan.
Dmitry
19

Apa yang Anda coba lakukan adalah perpanjangan string slicing dengan Python:

Katakanlah semua string memiliki panjang 10, karakter terakhir yang akan dihapus:

>>> st[:9]
'abcdefghi'

Untuk menghapus Nkarakter terakhir :

>>> N = 3
>>> st[:-N]
'abcdefg'
mu 無
sumber