我正在尝试实现一个以字符串作为参数的函数,以及字符串末尾是否包含字母'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',只要它位于字符串的末尾?
答案 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