Dizeden ilk x karakteri mi kaldırıyorsunuz?


116

Bir dizeden ilk x karakteri nasıl kaldırılabilir? Örneğin, bir dizge lipsumolsaydı ilk 3 karakteri nasıl kaldırıp sonucunu alırlardı sum?


5
daha iyi bir örnek, kaldırılan karakter sayısı, kalacak karakter sayısına eşit değilse. örneğin"lipsumm"[3:] == "summ"
Scott Pelak

Yanıtlar:


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

Daha fazla bilgi için dizelerle ilgili resmi belgelere ve notasyonun kısa bir özeti için bu SO cevabına bakın.


16

Başka bir yol (gerçek ihtiyaçlarınıza bağlı olarak): İlk n karakteri açmak ve hem atılan karakterleri hem de değiştirilen dizeyi kaydetmek istiyorsanız :

s = 'lipsum'
n = 3
a, s = s[:n], s[n:]
print(a)
# lip
print(s)
# sum

3
Sanırım mecazi olarak "patladı" ama aslında sadece 2 farklı dilim, gerçek patlama yok
jamylak

9
>>> x = 'lipsum'
>>> x.replace(x[:3], '')
'sum'

11
Bunun kodda daha uzun olduğunu ve alt dizeyi değiştirmeden önce aramanız gerektiğinden daha fazla zaman alacağını unutmayın. Ayrıca: >>> x = 'liplip' >>> x.replace(x[:3], '') ''. Elbette üçüncü parametrenin (sayım) = 1 olmasını sağlayarak bunu düzeltebilirsiniz, ancak yine de daha uzun sürecektir.
jamylak

nah cevabınızla ilgili bu yüzden buraya ait. Sizinkine count = 1 ekleyerek hala çalışması için btw
jamylak

4

Kullanın del.

Misal:

>>> text = 'lipsum'
>>> l = list(text)
>>> del l[3:]
>>> ''.join(l)
'sum'

1
Bu, düşündüğünüz gibi çalışmıyor text = 'liplip' >>> text.lstrip(text[:3]) ''çünkü biri için chars argümanı bir önek değil; bunun yerine, değerlerinin tüm kombinasyonları çıkarılır:str.lstrip([chars])
jamylak

@jamylak Benimki düzenlendi
U10-İleri

1
Çözümlerin hiçbiri işe yaramıyor, örneğin. için 'liplip'. İkincisiTypeError: 'str' object does not support item deletion
jamylak

@jamylak Tekrar düzenlendi
U10-İleri

@jamylak işe yarıyor, eğer öyleyse, olumsuz oy vermeniz gerekiyor mu?
U10-İleri

2

Hesap numarasının son 3 hanesini gösteren örnek.

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

o/p: '890'

Bu, tkbx'in cevabıyla aynı soruna sahip
jamylak

Örneğin. >>> x = '12345678901234567890' >>> x.replace(x[:7], 'xxxxxxx') 'xxxxxxx890xxxxxxx890'
jamylak

Ayrıca bu soruya cevap bile vermiyor, karakterleri xsilmek yerine s ile değiştiriyorsunuz
jamylak
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.