2013-07-13 81 views
-2

記錄我:蟒蛇代替可變

X =「ABCDEFGHI」,我想從另一個記錄變量替換記錄。

例如:

X = 「ABCDEFGHI」 x.replace(X [1],X [1 + 2]),並且我想要做一個這樣的事情,以所有記錄在該變量

X = 'ABCDEFGHI'

for i in range(len(x)): 
    if i < 4: 
     x =(alp.replace(alp[i], alp[i+2])) 
     print x 

結果是: 「efefefghi」 ,但它應該是: 「bdefefefghi」

+3

'在範圍I(LEN(X)):如果I <4:'...唔... – mishik

+2

凡'alp'來自? – falsetru

+1

請解釋_how_你期望得到'bdefefefghi'好像是一個不同長度的字符串 – mishik

回答

0

那怎麼replace w ^獸人。它不會用「char at#」替代「#字符」。它實際上取代了給定角色的所有事件。

當你到x.replace(x[2], x[4])你已經有相同的字符在x[0]x[2]。因此,它們都被替換爲x[4]

參見:

>>> x = "abcde" 
>>> x = x.replace(x[0], x[2]) # == replace("a", "c") 
>>> x 
'cbcde' 
>>> x = x.replace(x[2], x[4]) # == replace("c", "e") 
>>> x 
'ebede' 

爲了讓您的代碼的工作,我的建議是:

x = "abcdefghi" 
x = list(x) 
for i in range(len(x)): 
    if i < 4: 
     x[i] = x[i+2] 
     print "".join(x) 

結果:

cbcdefghi 
cdcdefghi 
cdedefghi 
cdefefghi 

甚至沒有迭代:

x = "abcdefghi" 
x = list(x) 
x[0:4] = x[2:6] 
print "".join(x) 

結果:

cdefefghi