รหัสง่ายๆที่พยายามแทนที่อัฒภาค (ที่ตำแหน่งที่ระบุไว้) ด้วยเครื่องหมายโคลอนใช้ไม่ได้:
for i in range(0,len(line)):
if (line[i]==";" and i in rightindexarray):
line[i]=":"
มันให้ข้อผิดพลาด
line[i]=":"
TypeError: 'str' object does not support item assignment
ฉันจะแก้ไขสิ่งนี้เพื่อแทนที่อัฒภาคด้วยเครื่องหมายจุดคู่ได้อย่างไร การใช้การแทนที่ไม่ได้ผลเนื่องจากฟังก์ชันนั้นไม่มีดัชนี - อาจมีอัฒภาคบางตัวที่ฉันไม่ต้องการแทนที่
ตัวอย่าง
ในสตริงฉันอาจมีเครื่องหมายอัฒภาคจำนวนเท่าใดก็ได้เช่น "Hei der !; Hello there; !;"
ฉันรู้ว่าฉันต้องการแทนที่อันไหน (ฉันมีดัชนีอยู่ในสตริง) การใช้การแทนที่ไม่ได้ผลเนื่องจากฉันไม่สามารถใช้ดัชนีกับมันได้
str.find()
แทนเพื่อหาตำแหน่งของอัฒภาคจากนั้นใช้การแบ่งส่วนเพื่อแยกสตริงย่อย
str.replace()
BIF หรือไม่?