2009-11-15 5 views
0

Je voudrais changer 2 octets dans une chaîne comme ceci:changement 2 octets dans une chaîne

"ABCDEFGHIJKLMNOPQRSTUVWXYZ" 

Imaginons que je veux remplacer 'RS' par 11, je sais comment le faire avec un octet comme [:], mais pour 2 ou plus au milieu de la chaîne?

Merci!

+0

Sons comme les devoirs. Vous voudrez peut-être montrer votre tentative en premier. –

+0

Hmmm ... comment remplacez-vous un seul octet dans une chaîne? Les chaînes sont immuables. –

Répondre

4

Les chaînes sont immuables, vous ne pouvez pas les modifier. Vous devez faire une nouvelle chaîne à partir de pièces de l'ancien:

>>> az= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 
>>> az= az[:17]+'11'+az[19:] 
>>> az 
'ABCDEFGHIJKLMNOPQ11TUVWXYZ' 

bien que selon un ce que vous faites il peut y avoir une façon plus appropriée de manipuler que de compter sur des indices fixes, par exemple.

>>> 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.replace('RS', '11', 1) 
'ABCDEFGHIJKLMNOPQ11TUVWXYZ' 
1

J'utiliser string.replace():

>>> import string 
>>> az = string.lowercase 
>>> az = az.replace('rs', '11') 
>>> az 
'abcdefghijklmnopq11tuvwxyz' 
0

Je pense qu'il est une question piège, voir "comment le faire avec un octet":

>>> st="ABCDEFGHIJKLMNOPQRSTUVWXYZ" 
>>> st="ABCDEFGHIJKLMNOPQRSTUVWXYZ".replace("R","1").replace("S","1") 
>>> print st 
ABCDEFGHIJKLMNOPQ11TUVWXYZ 
Questions connexes