OVH Cloud OVH Cloud

extraction de chaine

11 réponses
Avatar
Jean-Baptiste
une chaîne
s = "192.168.128.1"

je veux recupérer "192.168.128" chaine avant le dernier point et "1"
chaine apres le dernier point.
(sachant qu'il ne faut pas planter si il n'y a pas de points)

solution 1)

i = s.rfind(".")
if (i>= 0) :
s11 = s[i+1:]
s12 = s[:i]
else :
s11 = s
s12 = ""

solution 2)

s21 = s.split(".")[-1] #plutot joli
s22 = ".".join(s.split(".")[0:-1]) #assez mmoche

Qu'en pensez vous ?
performances ?
lisibilité ?

Rq: comme exemple on peut aussi prendre s = "c:\\rep1\\rep2\\fichier"
avec le separateur "\\"

1 réponse

1 2
Avatar
Guillaume Bouchard
Do Re Mi chel La Si Do wrote:
Bonsoir !


Bonsoir.

txt="xx_blabla_12"
mapc = {'a':'', '_':''} #liste des suppressions, ou des remplacements
print ''.join([mapc.get(i, i) for i in txt])


Bien joué !

à noter que c'est compatible unicode :


* 2

--
Guillaume.

1 2