Menghapus karakter x pertama dari string?

116

Bagaimana cara menghapus karakter x pertama dari string? Misalnya, jika seseorang memiliki string lipsum, bagaimana mereka menghapus 3 karakter pertama dan mendapatkan hasil sum?

tkbx
sumber
5
contoh yang lebih baik jika jumlah karakter yang dihapus tidak sama dengan jumlah karakter yang tersisa. misalnya"lipsumm"[3:] == "summ"
Scott Pelak

Jawaban:

213
>>> text = 'lipsum'
>>> text[3:]
'sum'

Lihat dokumentasi resmi tentang string untuk informasi lebih lanjut dan jawaban SO ini untuk ringkasan singkat dari notasi tersebut.

jamylak
sumber
16

Cara lain (tergantung pada kebutuhan Anda yang sebenarnya): Jika Anda ingin memunculkan n karakter pertama dan menyimpan karakter yang muncul dan string yang dimodifikasi:

s = 'lipsum'
n = 3
a, s = s[:n], s[n:]
print(a)
# lip
print(s)
# sum
Ken A
sumber
3
Saya kira itu secara metaforis "muncul" tetapi sebenarnya hanya 2 irisan yang berbeda, tidak ada yang muncul
jamylak
9
>>> x = 'lipsum'
>>> x.replace(x[:3], '')
'sum'
tkbx
sumber
11
Perhatikan bahwa ini lebih panjang dalam kode dan juga akan memakan waktu lebih lama karena Anda harus mencari substring sebelum Anda menggantinya. Juga: >>> x = 'liplip' >>> x.replace(x[:3], '') ''. Tentu Anda bisa memperbaiki ini dengan memiliki parameter ketiga (count) = 1 tetapi itu masih akan memakan waktu lebih lama.
jamylak
nah itu terkait dengan jawaban Anda jadi itu milik di sini. Anda dapat menambahkan count = 1 ke milik Anda sehingga masih berfungsi btw
jamylak
4

Gunakan del.

Contoh:

>>> text = 'lipsum'
>>> l = list(text)
>>> del l[3:]
>>> ''.join(l)
'sum'
U10-Maju
sumber
1
Ini tidak bekerja seperti yang Anda pikirkan text = 'liplip' >>> text.lstrip(text[:3]) ''karena untuk satu Argumen chars bukan awalan; sebaliknya, semua kombinasi nilainyastr.lstrip([chars])
dihilangkan
@jamylak Diedit milik saya
U10-Forward
1
Tak satu pun dari solusi yang berhasil, misalnya. untuk 'liplip'. Yang keduaTypeError: 'str' object does not support item deletion
jamylak
@jamylak Diedit lagi
U10-Forward
@jamylak apakah berfungsi, sekarang, jika demikian apakah Anda perlu downvote?
U10-Forward
2

Contoh untuk menunjukkan 3 digit terakhir nomor rekening.

x = '1234567890'   
x.replace(x[:7], '')

o/p: '890'
Pratik Jaswant
sumber
Ini memiliki masalah yang sama dengan jawaban oleh tkbx
jamylak
misalnya. >>> x = '12345678901234567890' >>> x.replace(x[:7], 'xxxxxxx') 'xxxxxxx890xxxxxxx890'
jamylak
Juga ini bahkan tidak menjawab pertanyaan, Anda mengganti karakter dengan xs daripada menghapusnya
jamylak