我正在尝试从列表中替换部分字符串 到目前为止,我有以下代码:
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}
这里的解决方案是什么?
答案 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}