我试图找到文本正文中的所有句号,并在其中创建一个空格。我只允许使用 for 循环,否则我会使用正则表达式。我不明白为什么下面的 for 循环没有用我的新作业替换原始的字母
。我的代码如下:
text = 'I have a ruler and bought for 25 gpb.'
text_split = text.split()
for word in text_split:
for letter in word:
if letter == '.':
letter = ' .'
如果有人可以提供帮助,我们将不胜感激
最佳答案
letter = ' .'
只是将名称 letter
重新绑定(bind)到不同的字符串。绑定(bind)到letter
的原始对象没有改变(即使在理论上也不能改变;str
是一个不可变类型)。类似的问题会阻止在每个循环上更改绑定(bind)到 word
的 text_split
中的原始 str
。
对于这个具体案例,您只需要:
text_split = [word.replace('.', ' .') for word in text_split]
或稍长的拼写版本(就地修改text_split
,而不是用修改后的str
的新list
替换它):
for i, word in enumerate(text_split):
text_split[i] = word.replace('.', ' .')
关于python - for 循环可迭代不会覆盖原始内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59080617/