Home > Mobile >  rstrip() function does not work in what I expected
rstrip() function does not work in what I expected

Time:04-03

I wanted to eliminate specific characters by using rstrip() function in python, but it didn't work well to me.

Here is the code I wrote.

a = "happy! New! Year!!!"
print(a)
b = a.lower()
print(b)
c = b.rstrip('!')
print(c)

And this is the result.

happy! New! Year!!!
happy! new! year!!!
happy! new! year

The result I wanted was to output "happy new year", but the function just got rid of last three '!'. I have no idea why it happened.

CodePudding user response:

the rstrip function in python will only remove trailing characters that are specified, not all instances of the character in the string. For example if I did:

a = 'hello'

print(a.rstrip('l'))

nothing would change, because there is an e at the end of the string after any instance of 'l'

You might want to try using the replace method:

a = 'hello'

print(a.replace('l','')
> heo

CodePudding user response:

The rstrip function only strips a given character appearing one or more times at the end of the entire string. To remove ! from the end of each word, we can use re.sub:

a = "happy! New! Year!!!"
output = re.sub(r'\b! (?!\S)', '', a)
print(output)  # happy New Year
  • Related