Python for loop iterable不覆盖原始文件

Python for loop iterable不覆盖原始文件,python,for-loop,Python,For Loop,我试图在正文中找到所有的句号,并在其中创建一个空格。我只允许使用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 == '.':

我试图在正文中找到所有的句号,并在其中创建一个空格。我只允许使用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
重新绑定到另一个字符串即可。绑定到
letter
的原始对象是不变的(理论上也不能更改;
str
是不可变的类型)。类似的问题会阻止更改每个循环上绑定到
word
text\u split
中的原始
str

对于此特定情况,您只需要:

text_split = [word.replace('.', ' .') for word in text_split]
或者拼写稍长的版本(修改
文本拆分
,而不是将其替换为新的
列表
(修改后的
str
):


letter=”。
只需将名称
letter
重新绑定到另一个字符串。绑定到
letter
的原始对象是不变的(理论上也不能更改;
str
是不可变的类型)。类似的问题会阻止更改每个循环上绑定到
word
text\u split
中的原始
str

对于此特定情况,您只需要:

text_split = [word.replace('.', ' .') for word in text_split]
或者拼写稍长的版本(修改
文本拆分
,而不是将其替换为新的
列表
(修改后的
str
):


替代的简单方法:

text = 'Hello. Bye.'

new_text = ''

for letter in text:
    if letter == '.':
        new_text += ' .'
    else:
        new_text += letter

print(new_text)
输出:

Hello . Bye .

替代的简单方法:

text = 'Hello. Bye.'

new_text = ''

for letter in text:
    if letter == '.':
        new_text += ' .'
    else:
        new_text += letter

print(new_text)
输出:

Hello . Bye .

您可以使用
str.replace()
?您可以使用
str.replace()
?为什么不为。。。改为在…循环中?为什么不为…使用
。。。而是在…
循环中?为什么不立即替换整个字符串?@AlexanderCécile:是的,这将是更合理的解决方案。因为那里的树木而错过了森林。为什么不立即更换整个绳子呢?@AlexanderCécile:是的,那将是更合理的解决方案。因为那里的树木而错过了森林。