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?


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.


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

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'

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'

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'

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.