只替换list python中的几个字符

时间:2013-06-25 19:04:20

标签: python regex list

我有一个列表格式如下:

[ '2013,june,25,11,img1.ams.expertcity.com,/builds/g2m/1172/G2M_Mac_x86,84.83.189.112,3', '2013,june,25,11,img1.ams.expertcity.com,/builds/g2m/1172/G2MInstallerExtractor.exe,85.164.14.248,6', '2013,june,25,11,img1.syd.expertcity.com,/builds/g2m/1172/G2MCoreInstExtractor.exe,99.245.80.126,19']

我只需要用' - '替换前三个逗号。对于列表中的每个元素,列表应如下所示:

[ '2013-june-25-11,img1.ams.expertcity.com,/builds/g2m/1172/G2M_Mac_x86,84.83.189.112,3', '2013-june-25-11,img1.ams.expertcity.com,/builds/g2m/1172/G2MInstallerExtractor.exe,85.164.14.248,6', '2013-june-25-11,img1.syd.expertcity.com,/builds/g2m/1172/G2MCoreInstExtractor.exe,99.245.80.126,19'] 

我尝试使用替换,但它最终取代所有','与' - '

mylist = [x.replace(",","-") for x in mylist]

我不想使用正则表达式,因为列表中的顺序可能会随着时间而改变。 请建议一个更好的方法来做到这一点?

1 个答案:

答案 0 :(得分:5)

使用此:x.replace(",","-",3)

str.replace有第三个可选参数count

str.replace上的帮助:

S.replace(old, new[, count]) -> string
  

返回字符串S的副本,其中出现所有子字符串old   换成新的。如果给出了可选参数 count ,则只有   第一次计数发生次数被替换。