2013-06-25 3 views
1

У меня есть список, который имеет следующий формат:Заменить только несколько символов из списка питона

[ '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] 

Я не хочу использовать регулярное выражение, потому что порядок в списке может меняться со временем. Пожалуйста, предложите лучший способ сделать это?

ответ

5

Используйте это: x.replace(",","-",3)

str.replace имеет третий необязательный аргумент count.

помощь на str.replace:

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

Вернуть копию строки S все вхождения подстроки старого заменены новыми. Если задан необязательный аргумент , то только первые кол-во экземпляров заменены.

+0

Привет, если мне нужно заменить четвертую и пятую запятую на «:», а первые три запятой на «-», есть ли способ указать значения диапазона также? –

Смежные вопросы