Skip to main content
 首页 » 编程设计

python之如何使用 Python 替换字符串中的成对字符

2025年05月04日52luoye11

假设我有一个字符串:

x="AAAABBABAABCCABBCA" 

我有以下信息:

AAA=1 
ABB= ignore/remove from final output 
ABA=2 
ABC=3 
CAB=4 
BCA= ignore/remove from final output 

所以当我翻译 x 时,输出 y 应该是: y=1234

我试过:

def fun(x): 
    x=x.replace("AAA","1")  
    x=x.replace("ABA","2") 
    x=x.replace("ABB","") 
    x=x.replace("ABC","3") 
    x=x.replace("BCA","") 
    x=x.replace("CAB","4") 
    print x 

但它给了我错误的答案:123CCA

我也试过:

def fun(x): 
    z=[] 
        for i in range(0,(len(x)+1)): 
            if i=="AAA": 
                i=i.replace("AAA",1) 
        z.append(i) 
        elif i=="ABA": 
            i=i.replace("ABA",2) 
    elif i=="ABB": 
            i=i.replace("ABB","") 
    elif i=="ABC": 
            i=i.replace("ABC",3) 
    elif i=="BCA": 
            i=i.replace("BCA","") 
    elif i=="CAB": 
            i=i.replace("CAB","4") 
        z.append(i) 
    print ",".join(z) 

但是语法有问题。

所以主要的问题是从头开始检查字符串并替换字符。 请帮助我。

谢谢

请您参考如下方法:

这是一个解决方案,可以在运行字符串时正确打印 1234:

x = "AAAABBABAABCCABBCA" 
newstr = '' 
for i in range(0,len(x),3): 
    part = x[i:i + 3] 
    if part == 'AAA': 
        newstr += '1' 
    elif part == 'ABA': 
        newstr += '2' 
    elif part == 'ABC': 
        newstr += '3' 
    elif part == 'CAB': 
        newstr += '4' 
print newstr 

如果三个字符的序列没有做任何事情,让它检查它就没有多大意义;静静地继续下一个。

如果您决定使用 str.replace 替换代码中的这些字符串,您应该查看可选的第三个参数 count。如果将其限制为每个循环的单个替换,您应该会获得所需的结果。