Steve Holden <[EMAIL PROTECTED]> wrote:
>
> Guido van Rossum wrote:
> > On 8/30/05, Andrew Durdin <[EMAIL PROTECTED]> wrote:
> [confusion]
> >
> >
> > Hm. The example is poorly chosen because it's an end case. The
> > invariant for both is (I'd hope!)
> >
> > "".join(s.partition()) == s == "".join(s.rpartition())
> >
> > Thus,
> >
> > "a/b/c".partition("/") returns ("a", "/", "b/c")
> >
> > "a/b/c".rpartition("/") returns ("a/b", "/", "c")
> >
> > That can't be confusing can it?
> >
> > (Just think of it as rpartition() stopping at the last occurrence,
> > rather than searching from the right. :-)
> >
> So we can check that a substring x appears precisely once in the string
> s using
>
> s.partition(x) == s.rpartition(x)
>
> Oops, it fails if s == "". I can usually find some way to go wrong ...
There was an example in the standard library that used "s.find(y) ==
s.rfind(y)" as a test for zero or 1 instances of the searched for item.
Generally though, s.count(x)==1 is a better test.
- Josiah
_______________________________________________
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com