我知道如何使用拼接删除字母的首次出现,但是我试图不使用拼接,.find()、. count()等任何字符串函数来实现这一点。我可以似乎无法弄清楚如何完成拼接。
这是我目前可以正常使用的拼接功能
s1 = ''
s2 = len(remWord)
for i in range(s2):
if (remWord[i] == remLetter):
s1 = remWord[0:i] + remWord[i + 1:s2]
return s1
任何帮助都会很棒。
答案 0 :(得分:2)
我假设如果字符串中不包含字母,则不会删除任何内容,因此可以使用以下代码:
new_string = ''
found = False
for i in range(len(remWord)):
if remWord[i] != remLetter or found:
new_string += remWord[i]
else:
found = True
new_string = ''
for i in range(len(remWord)):
if remWord[i] != remLetter:
new_string += remWord[i]
else:
break
new_string += remWord[i + 1:]
答案 1 :(得分:1)
遇到第一个字母后,您应立即停止处理,为此请使用break
。
remWord = 'this is the word to process'
remLetter = 's'
s1 = ''
s2 = len(remWord)
for i in range(s2):
if (remWord[i] == remLetter):
s1 = remWord[0:i] + remWord[i + 1:s2]
break
print s1
输出:
$ python firstletter.py
thi is the word to process
如果省略break
,则输出将如下所示:
$ python firstletter.py
this is the word to proces
最后一次遇到输入字符串中的remLetter
时,if子句将得到满足
答案 2 :(得分:1)
字符串是序列类型,因此我们(大多数情况下)只需执行序列操作即可。
seen = False
chars = ''
for ch in remWord:
if ch == remLetter and not seen:
seen = True
else:
chars += ch
麻烦之处在于它有点贵,因为您每次都要创建一个新字符串。另外,您可以使chars成为列表并使用StringIO,如果可以使用,则使用''.join。