python用第三个替换两个可选的字符串(寻找一个简洁的方法)

2024-05-15 03:52:59 发布

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

我想用第三个替换两个可选字符串,即我希望能够:

string.replace(a or b, c)

是的,我可以在预定义的列表上循环,也可以使用两个replace命令。我只是想知道有没有更整洁的东西我不知道。在

示例

我有一根这样的绳子:

^{pr2}$

我想将'foo'替换为'yay',也将'bar'替换为'yay'以获得:

'yay yay baz'

我很容易做到:

'foo bar baz'.replace('foo', 'yay').replace('bar', 'yay')

但这有点重复。我在想,有没有什么好办法(也许是某个扩展字符串函数库的深奥函数。。。我不知道……)


Tags: or字符串命令示例列表stringfoobar
3条回答

您忘记了re解决方案:

import re
a = "hello world"
print re.sub("hello|world", "foo", a) # "foo foo"

我认为regex在这里最好。但为了完整起见,这里是糟糕的纯python版本。。在

>>> reduce(lambda x,y: x.replace(y, 'yay'), ('foo', 'bar'), 'foo bar baz')
'yay yay baz'

这不是很像Python,因为lambda。但您可以使用以下方法移除lambda:

Some esoteric function from some library that extends the string functions

可能看起来像这样:

^{pr2}$

函数式编程的人可能会喜欢它,但我认为大多数人更喜欢regex。在

import re
re.sub("a|b", "c", str)

例如

^{pr2}$

相关问题 更多 >

    热门问题