>> partition(sep) condenses this pattern into a single method >> call that returns a 3-tuple containing the substring before >> the separator, the separator itself, and the substring after >> the separator. If the separator isn't found, the first >> element of the tuple is the entire string and the other two >> elements are empty. rpartition(sep) also returns a 3-tuple >> but starts searching from the end of the string; the "r" >> stands for 'reverse'. > > I'm confused. What's the difference between this and > string.split?
(please don't top-post...I've inverted and trimmed for the sake of readability) I too am a bit confused but I can see uses for it, and there could be good underlying reason to do as much. Split doesn't return the separator. It's also guarnteed to return a 3-tuple. E.g. >>> s1 = 'one' >>> s2 = 'one|two' >>> len(s1.split('|', 1) 1 >>> len(s2.split('|', 1)) 2 which could make a difference when doing tuple-assignment: >>> v1, v2 = s2.split('|', 1) >>> # works fine >>> v1, v2 = s1.split('|', 1) [traceback] whereas one could consistently do something like >>> v1, _, v2 = s1.partition('|') without fear of a traceback to deal with. Just a few thoughts... -tkc -- http://mail.python.org/mailman/listinfo/python-list