如何指定字符串方法计数?

时间:2013-04-21 19:57:48

标签: python

我正在尝试实现一个以字符串作为参数的函数,以及字符串末尾是否包含字母'ion'来确定输出。

例如,如果我输入字符串'accordionist',我应该得到'accordionist'的输出,因为虽然它包含'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',只要它位于字符串的末尾?

2 个答案:

答案 0 :(得分:4)

使用正则表达式:

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

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

答案 1 :(得分:3)

def wordSwap(x):
    if x.endswith('ion'):
        return x[-3:] + 'e'
    else:
        return x