我正在尝试在文本正文中找到所有句号,并在其中创建空白。我只允许用于循环或使用正则表达式。我不明白为什么下面的for循环不会用我的新任务替换原来的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 = ' .'
如果有人可以帮助您,将不胜感激
答案 0 :(得分:1)
letter = ' .'
只是将名称letter
重新绑定到另一个字符串。绑定到letter
的原始对象是不变的(即使从理论上讲也无法更改; str
是不可变的类型)。一个类似的问题会阻止在每个循环中更改绑定到str
的{{1}}中的原始text_split
。
对于这种情况,您只需要:
word
或稍长的拼写版本(修改了text_split = [word.replace('.', ' .') for word in text_split]
而不是用修改后的text_split
的新list
代替):
str
答案 1 :(得分:-1)
另一种简单方法:
text = 'Hello. Bye.'
new_text = ''
for letter in text:
if letter == '.':
new_text += ' .'
else:
new_text += letter
print(new_text)
输出:
Hello . Bye .