更改列表中的python字符串

时间:2018-08-14 20:44:09

标签: python string list

我正在尝试从列表中替换部分字符串 到目前为止,我有以下代码:

newName = 'MeshNew'

list = ['mesh.vtx{12}' 'mesh.vtx{13}']
#print(list) 

for i in (list):
  new = i.split('mesh.vtx')
  print(new)

我需要它打印出来

MeshNew.vtx{12},MeshNew.vtx{13}

这里的解决方案是什么?

5 个答案:

答案 0 :(得分:1)

使用列表理解:

",".join([x.replace("mesh","MeshNew") for x in list])

答案 1 :(得分:0)

首先,为了正确声明列表,您需要在元素之间使用逗号。 另外,请注意一点,但要避免为变量关键字命名(list是关键字)。

然后,您只需在每个元素上使用replace语句,然后将它们连接成字符串即可。

myList = ['mesh.vtx{12}', 'mesh.vtx{13}']
",".join(x.replace("mesh", "MeshNew") for x in myList])

答案 2 :(得分:0)

newName = 'MeshNew'

list = ['mesh.vtx{12}' 'mesh.vtx{13}']
#print(list) 

print ','.join([i.replace('mesh',newName) for i in list])

尝试此方法。

答案 3 :(得分:0)

我不知道您为什么需要进行这种替换,但是让我们假设您将上面的字符串作为模板。在这种情况下,我建议您进行格式化(str.format()),而不要替换。

这是您的代码的样子:

new_name = 'MeshNew'

l = ['{name}.vtx{{12}}', '{name}.vtx{{13}}']


formatted = [s.format(name=new_name) for s in l]
print(','.join(formatted))

请注意,在使用format()函数时,需要重复大括号。

答案 4 :(得分:0)

您还可以使用re.sub函数:

import re

newName = 'MeshNew'
inlist = ['mesh.vtx{12}', 'mesh.vtx{13}']

output = re.sub("mesh",newName, ",".join(inlist))
print(output)

输出:

MeshNew.vtx{12},MeshNew.vtx{13}