ฉันต้องการลบอักขระตัวแรกของสตริง
ตัวอย่างเช่นสตริงของฉันเริ่มต้นด้วย:
และฉันต้องการที่จะลบเท่านั้น มีหลายเหตุการณ์:
ในสตริงที่ไม่ควรลบออก
ฉันกำลังเขียนรหัสใน Python
ฉันต้องการลบอักขระตัวแรกของสตริง
ตัวอย่างเช่นสตริงของฉันเริ่มต้นด้วย:
และฉันต้องการที่จะลบเท่านั้น มีหลายเหตุการณ์:
ในสตริงที่ไม่ควรลบออก
ฉันกำลังเขียนรหัสใน Python
คำตอบ:
หลาม 2.x
s = ":dfa:sif:e"
print s[1:]
หลาม 3.x
s = ":dfa:sif:e"
print(s[1:])
ทั้งพิมพ์
dfa:sif:e
ปัญหาของคุณดูเหมือนไม่ชัดเจน คุณบอกว่าคุณต้องการที่จะลบ "ตัวละครจากตำแหน่งที่แน่นอน" จากนั้นกล่าวต่อไปว่าคุณต้องการที่จะลบตัวละครที่เฉพาะเจาะจง
หากคุณต้องการลบอักขระแรกที่คุณต้องการ:
s = ":dfa:sif:e"
fixed = s[1:]
หากคุณต้องการลบตัวละครในตำแหน่งที่ต้องการคุณจะต้อง:
s = ":dfa:sif:e"
fixed = s[0:pos]+s[pos+1:]
หากคุณต้องการลบอักขระเฉพาะให้พูดว่า ':' ครั้งแรกที่พบอักขระในสตริงคุณจะต้อง:
s = ":dfa:sif:e"
fixed = ''.join(s.split(':', 1))
s.replace(":", "", 1)
-
ขึ้นอยู่กับโครงสร้างของสตริงคุณสามารถใช้lstrip
:
str = str.lstrip(':')
แต่ตอนนี้จะเอาทวิภาคทั้งหมดที่จุดเริ่มต้นคือถ้าคุณมีผลที่จะเป็น::foo
foo
แต่ฟังก์ชั่นนี้มีประโยชน์หากคุณมีสตริงที่ไม่ได้ขึ้นต้นด้วยโคลอนและคุณไม่ต้องการลบอักขระแรก
ลบอักขระ:
def del_char(string, indexes):
'deletes all the indexes from the string and returns the new one'
return ''.join((char for idx, char in enumerate(string) if idx not in indexes))
มันจะลบตัวอักษรทั้งหมดที่อยู่ในดัชนี คุณสามารถใช้มันในกรณีของคุณด้วยdel_char(your_string, [0])