我有一个列表格式如下:
[ '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]
我不想使用正则表达式,因为列表中的顺序可能会随着时间而改变。 请建议一个更好的方法来做到这一点?
答案 0 :(得分:5)
使用此:x.replace(",","-",3)
str.replace
有第三个可选参数count
。
str.replace
上的帮助:
S.replace(old, new[, count]) -> string
返回字符串S的副本,其中出现所有子字符串old 换成新的。如果给出了可选参数 count ,则只有 第一次计数发生次数被替换。