1

我正在尝试实现一个将字符串作为参数的函数,并且字符串是否在末尾包含字母“ion”决定了输出。

例如,如果我输入字符串 'accordionist',那么我应该得到 'accordionist' 的输出,因为虽然它包含 'ion',但它不在字符串的末尾。

但是,如果我输入字符串 'congratulation',我想将 'ion' 更改为 'e',因为 'ion' 在单词的末尾。

到目前为止,我有:

def wordSwap(x):

    if x.count('ion') == 1:
        return x.replace('ion','e')
    else:
        return x

 

>>> wordSwap('congratulation')
'congratulate'

这很好用,但是当我使用如下字符串时:

>>> wordSwap('accordionist')

我明白了

'accordeist'

如何指定我只想将“ion”更改为“e”,前提是它位于字符串的末尾?

4

2 回答 2

4

使用正则表达式:

>>> import re
>>> def wordswap(x):
...    return re.sub("ion$", "e", x)
...
>>> wordswap("accordionist")
'accordionist'
>>> wordswap("congratulation")
'congratulate'

$是“字符串结尾”锚点(它只匹配字符串的结尾)。

于 2013-04-21T20:01:32.317 回答
3
def wordSwap(x):
    if x.endswith('ion'):
        return x[-3:] + 'e'
    else:
        return x
于 2013-04-21T19:58:40.623 回答