这是我想做的事情:
我有一长串:
s = asdf23rlkasdfidsiwanttocutthisoutsadlkljasdfhvaildufhblkajsdhf
我想剪切出子字符串:iwanttocutthisout
我将遍历循环,每次迭代时s的值都会改变。每次迭代唯一不变的是要删除的子字符串的开头和结尾:iwant和thisout。
给定这些参数后,如何切出子字符串?
谢谢你的帮助!
最佳答案
您可以分别在iwant
的出现索引(+len(iwant)
排除iwant
)和thisout
的出现索引之间进行切片,如下所示:
>>> s = "asdf23rlkasdfidsiwanttocutthisoutsadlkljasdfhvaildufhblkajsdhf"
>>> s[s.index("iwant")+len("iwant"):s.index("thisout")]
'tocut'
图解地:
"asdf23rlkasdfids(iwanttocut)thisoutsadlkljasdfhvaildufhblkajsdhf"
^ ^
| |
index("iwant") |
index("thisout")
请注意,这两个索引之间的切片(从开始算起)如何得到
iwanttocut
。添加len("iwant")
将导致:"asdf23rlkasdfidsiwant(tocut)thisoutsadlkljasdfhvaildufhblkajsdhf"
^ ^
/----| |
index("iwant") |
index("thisout")