2013-07-13 80 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