Python中简单的字符串重写系统

2024-10-01 22:25:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个脚本重写系统,以便在每次迭代之后,所有a都将更改为B,所有B都将更改为AB。初始状态为ABA,因此第一次迭代应生成BABB,但我得到的代码返回ABABAB。我对python很陌生,你可以从下面的代码中看出,如果你能解释一下为什么我做的事情会出错,我也会非常感激

SRS = { 'a':'b', 'b':'ab'}
script = "aba"
for key in SRS:
    script = script.replace(key,SRS[key])
    print(script)

Tags: key代码脚本forab系统script事情
3条回答

这是因为你先用b代替a,所以你有“bbb”,然后用ab代替b,所以得到“ababab”

以下是您需要的代码:

SRS = { 'a':'b', 'b':'ab'}
script = "aba"
script_replaced = ""
for character in script:
    script_replaced += SRS[character]

print(script)
print(script_replaced)

注意,我们循环处理字符串中的每个字符,并替换为字典中的匹配项

这里的问题是script = script.replace(key,SRS[key])运行在所有script变量上,而不是逐个字符。如果逐字符运行替换,则它可以工作:

SRS = { 'b':'ab', 'a':'b',}
script = "aba"
new_script = ''
for letter in script:    
    new_script += SRS[letter]
print(new_script)

在第一步中,将所有a替换为b

"aba" -> "bbb"

然后将b替换为ab

^{pr2}$

如果要用字符替换字符,则必须循环script

SRS = { 'a':'b', 'b':'ab'}
script = "aba"
result = ""
for ch in script:
    result += SRS[ch]
print(result)

相关问题 更多 >

    热门问题