'rstrip() function does not work in what I expected
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.
Solution 1:[1]
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
Solution 2:[2]
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
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Tim Biegeleisen |
| Solution 2 | Karl Knechtel |
