การลบอักขระ x ตัวแรกออกจากสตริง?


116

เราจะลบอักขระ x ตัวแรกออกจากสตริงได้อย่างไร? ตัวอย่างเช่นหากมีสตริงlipsumพวกเขาจะลบอักขระ 3 ตัวแรกและได้ผลลัพธ์sumอย่างไร


5
ตัวอย่างที่ดีกว่าหากจำนวนอักขระที่ลบออกไม่เท่ากับจำนวนอักขระที่ยังคงอยู่ เช่น"lipsumm"[3:] == "summ"
Scott Pelak

คำตอบ:


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

ดูเอกสารอย่างเป็นทางการเกี่ยวกับสตริงสำหรับข้อมูลเพิ่มเติมและคำตอบ SO นี้สำหรับสรุปโดยย่อของสัญกรณ์


16

อีกวิธีหนึ่ง (ขึ้นอยู่กับความต้องการที่แท้จริงของคุณ): หากคุณต้องการแสดงอักขระnตัวแรกและบันทึกทั้งอักขระที่โผล่ขึ้นมาและสตริงที่แก้ไข:

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

3
ฉันเดาว่ามันเป็น "โผล่" ในเชิงเปรียบเทียบ แต่จริงๆแล้วมันเป็นเพียง 2 ชิ้นที่แตกต่างกันไม่มีการโผล่ออกมาจริงๆ
jamylak

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

11
โปรดทราบว่าโค้ดนี้ยาวกว่าและจะใช้เวลามากขึ้นเนื่องจากคุณต้องค้นหาสตริงย่อยก่อนที่คุณจะแทนที่ นอกจากนี้: >>> x = 'liplip' >>> x.replace(x[:3], '') ''. แน่นอนว่าคุณสามารถแก้ไขปัญหานี้ได้โดยมีพารามิเตอร์ที่สาม (count) = 1 แต่ก็ยังใช้เวลานานกว่านี้
jamylak

ไม่เกี่ยวข้องกับคำตอบของคุณดังนั้นจึงอยู่ที่นี่ คุณสามารถเพิ่ม count = 1 ให้กับคุณเพื่อให้มันยังใช้งานได้ btw
jamylak

4

ใช้del.

ตัวอย่าง:

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

1
สิ่งนี้ไม่ได้ผลอย่างที่คุณคิดtext = 'liplip' >>> text.lstrip(text[:3]) ''เพราะสำหรับอาร์กิวเมนต์ตัวอักษรไม่ใช่คำนำหน้า แต่การรวมค่าทั้งหมดจะถูกตัดออก:str.lstrip([chars])
jamylak

@jamylak แก้ไขของฉัน
ส่งต่อ

1
วิธีแก้ปัญหาทั้งสองวิธีไม่ได้ผลเช่น สำหรับ'liplip'. ในอันที่สองTypeError: 'str' object does not support item deletion
jamylak

@jamylak แก้ไขอีกครั้ง
ส่งต่อ

@jamylak ใช้งานได้หรือไม่ถ้าเป็นเช่นนั้นคุณต้องลดคะแนนหรือไม่?
U10- ส่งต่อ

2

ตัวอย่างการแสดงหมายเลขบัญชี 3 หลักสุดท้าย

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

o/p: '890'

สิ่งนี้มีปัญหาเดียวกับคำตอบโดย tkbx
jamylak

เช่น. >>> x = '12345678901234567890' >>> x.replace(x[:7], 'xxxxxxx') 'xxxxxxx890xxxxxxx890'
jamylak

นอกจากนี้ยังไม่ได้ตอบคำถามคุณกำลังแทนที่อักขระด้วยxs แทนที่จะลบออก
jamylak
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.