1

文字列をパラメーターとして受け取る関数を実装しようとしています。文字列の末尾に「ion」という文字が含まれているかどうかによって出力が決まります。

たとえば、文字列 'accordionist' を入力すると、'ion' が含まれていますが、文字列の末尾にないため、'accordionist' の出力が得られます。

ただし、文字列「congratulation」を入力した場合、「ion」は単語の末尾にあるため、「ion」を「e」に変更したいと思います。

これまでのところ、私は持っています:

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 に答える