用另一个字符串替换列表中的字符串

时间:2020-02-11 02:59:56

标签: python

我正在解决一个问题,我必须读取文件,然后将所有出现的字符串替换为另一个字符串,然后将文件保存到其他路径。我想我可以弄清楚保存文件部分,只是在替换字符串时遇到麻烦。这就是我到目前为止所拥有的。

arr = ['This parrot is no more. \n', 'It has ceased to be. \n', "It's expired and gone to meet its maker. \n"]
G = 'This'
B = 'B'

for x in arr:
  y = x.split(' ')
  for i in y:
    i.replace(G,B)
    print(i)

替换不执行任何操作,这对我来说没有意义,因为当我在type()上执行i时,它告诉我它是一个字符串,而replace是一个字符串方法。

非常感谢

3 个答案:

答案 0 :(得分:3)

这里您要更改每个元素的临时副本,而不是实际列表。因此,所做的更改不是在实际的句子列表中进行的。

for x in arr:
    y = x.split(' ')
    for i in y:
        i.replace(G,B)
print(i)

您应遵循基于索引的方法,即

arr = ['This parrot is no more. \n', 'It has ceased to be. \n',]
G = 'This'
B = 'B'
for i in range(len(arr)):
      arr[i].replace(G,B)
print (are)

希望这会有所帮助 对于缩进问题,我感到抱歉,因为我现在正在使用智能手机。

答案 1 :(得分:2)

在这种情况下,我不会使用str.replace,因为它可能会带来意想不到的后果,例如当您只想将Thistle替换为{{1 }}。而是比较单词并替换为匹配项:

Btle

或者,您可以使用正则表达式,在要替换的字符串周围添加单词边界:

This

答案 2 :(得分:0)

您没有保存结果。另外,您不需要拆分x

x = 'This parrot is no more. \n'
x = x.replace('This', 'B')
print(x, end='')  # -> B parrot is no more.