2016-06-13 12 views
0

Original-String sieht wie folgt aus:Ersetzen Wert nach Nth Begrenzer

a,b,c,d,e 

Wie kann ich das Komma getrennt Wert ersetzen, der nach dem N-ten Komma kommt?

Also zum Beispiel wie kann ich den Wert ersetzen, der nach dem 3. Komma mit x kommt, um eine folgende Zeichenfolge zu erstellen?

a,b,c,x,e

Antwort

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

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

print mystr 
0

Ja, es ist möglich,

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

die die genaue ouput zurückkehren wird, wie Sie es erwarten.

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

1

Es hängt davon ab, wie Sie es tun wollen, gibt es mehrere Möglichkeiten, wie zB:

Split mit

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

regex

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

im das regexp Beispiel, {3} ist, wie viele Einträge zu überspringen

0

Der Code, den ich hier poste, sollte selbsterklärend sein, wenn nicht, fühlen Sie sich frei, nach Erklärungen mit einem Kommentar zu fragen.

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'