Take the 2-minute tour ×
Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.

Possible Duplicate:
python .rstrip removes one additional character

What is the problem here? it seems that rstrip removes more than necessary in the one to the last line of code.

s = 'LedArray.py'
s.rstrip('y')
'LedArray.p'

s.rstrip('py')
'LedArray.'

s.rstrip('.py')
'LedArra'

s.rstrip('y.py')
'LedArra'
share|improve this question

marked as duplicate by SimonJ, 一二三, Constantinius, zoul, Cat Plus Plus Jan 5 '12 at 11:15

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

2 Answers 2

up vote 1 down vote accepted

rstrip takes "characters to remove", not "exact substring to remove" argument. .py and y.py are equivalent as sets. In fact, you could do y.p and it'd still remove the same characters.

share|improve this answer

Notice that the second argument to rstrip() is a set of characters, not a sequence. The characters to be removed do not need to occur in the order given.

This also means that rstrip('y.py') is exactly the same as rstrip('.py'), a character can't be in the set twice.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.
{"cc_re__cc_re__cc_by_sa_3_0": ["sites in the Stack Exchange network\">Area 51</a></li>\r\n                        <li><a href=\"//careers.stackoverflow.com?utm_source=stackoverflow.com&amp;utm_medium=site-ui&amp;utm_campaign=footerlink\">Stack Overflow Careers</a></li>\r\n                    \r\n                </ol>\r\n            </td>\r\n    </tr>\r\n</table>\r\n                </div>\r\n            </div>\r\n\r\n            <div id=\"copyright\">\r\n                site design / logo &#169; 2014 stack exchange inc; user contributions licensed under <a href=\"http://creativecommons.org/licenses/by-sa/3.0/\" rel=\"license\">cc by-sa 3.0</a>                   with <a href=\"http://blog.stackoverflow.com/2009/06/attribution-required/\" rel=\"license\">attribution required</a>\r\n            </div>\r\n            <div id=\"svnrev\">\r\n                rev 2014.12.20.2132\r\n            </div>\r\n            \r\n        </div>\r\n    </div>\r\n    <noscript>\r\n        <div id=\"noscript-warning\">Stack Overflow works best with JavaScript enabled<img src=\"http://pixel.quantserve.com/pixel/p-c1rF4kxgLUzNc.gif\" alt=\"\" class=\"dno\"></div>\r\n    </no"], "copyright__copyright__copyright": ["ivalent as sets. In fact, you could do y.p and it'd still remove the same characters.\n\nshare|improve this answer\n\nNotice that the second argument to rstrip() is a set of characters, not a sequence. The characters to be removed do not need to occur in the order given.\n\nThis also means that rstrip('y.py') is exactly the same as rstrip('.py'), a character can't be in the set twice.\n\nshare|improve this answer\n\nNot the answer you're looking for? Browse other questions tagged or ask your own question."]}