2016-06-13 48 views
0

原始字符串看起來是這樣的:第N次後,更換價值分隔符

a,b,c,d,e 

我怎麼能取代第N個逗號後到來的逗號分隔值?

因此,例如,如何將第三個逗號後面的值替換爲x以創建以下字符串?

a,b,c,x,e

回答

1
mystr = 'a,b,c,d,e' 

mystr = mystr.split(',') 
mystr[3] = 'x' 
mystr = ','.join(mystr) 

print mystr 
0

是有可能

def replaceNthComma(data, indexOfComma, newVal): _list = list(data) _list[indexOfComma*2] = newVal return ''.join(_list)

像您期望將返回準確的輸出中。

ouput: replaceNthComma("a,b,c,x,e", 3, 'x') ==> 'a,b,c,x,e'

1

這取決於你怎麼想這樣做,有幾種方法,如:採用分體式

list = "a,b,c,d,e".split(",") 
list[3] = "x" 
print ",".join(list) 

使用正則表達式

import re 
print re.sub(r"^((?:[^,]+,){3})([^,]+)(.*)$", "\\1x\\3", "a,b,c,d,e") 

在正則表達式示例,{3}是要跳過多少條目

0

我在這裏發佈的代碼應該是不言自明的,如果不是,請隨時向解釋請求評論。

s = 'a,b,c,d,e' 
n = 3 
to_replace_with = 'x' 

l = s.split(',') 
l[n] = to_replace_with 
result = ','.join(l) 

>>>print(result) 
'a,b,c,x,e'