在python中将“aa”转换为“a”,将“ab”转换为“b”

2024-09-30 08:32:46 发布

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

我想了一夜,但找不到一个快速的方法

首先出现的是replace()

for x,y in {'aa':'a','ab':'b'}.items():
    s = s.replace(x,y)

但在这种情况下是行不通的:“aabcc”

正确的是“abcc” 但输出将是“密件抄送”

我可以写一些类似的代码(我已经用各种语言编写了这些代码,比如C#、php、actionscript等等…)

^{pr2}$

我不想再写那些代码了,因为:

第一,当字典变大的时候,那些代码就会乱七八糟。在

第二,我相信在Python中必须有一些更优雅的方法来完成这项工作

编辑:我已经在第一段中修复了它,但这不是重点。在


Tags: 方法代码in语言forab情况items
2条回答

这里发生的是:

>>> "aabcc".replace("aa","a")
"abcc"

在下一次迭代中:

^{pr2}$

所以,你需要改变逻辑。在

我有个建议:

"aa"替换为"^aa^",将{}替换为{} 然后删除所有不需要的"^"

现在

^{3}$

在下一次迭代中:

>>> "^a^bcc".replace("ab","b")
"^a^bcc"
>>> "^a^bcc".replace("^","")
"abcc"

酷啊?在

您不能使用dict。请按照要替换它们的顺序指定元组。在

>>> s = 'aabcc'
>>> for x,y in (('ab','b'), ('aa','a')):
...     s = s.replace(x,y)
... 
>>> s
'abcc'

你也可以使用正则表达式

^{pr2}$

相关问题 更多 >

    热门问题