Python for loop iterable不覆盖原始文件
我试图在正文中找到所有的句号,并在其中创建一个空格。我只允许使用for循环,否则我将使用正则表达式。我不明白为什么下面的for循环没有用我的新作业替换原来的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 == '.':
字母
。我的代码如下:
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:是的,那将是更合理的解决方案。因为那里的树木而错过了森林。