akonsu wrote: > On Sep 23, 2:47 pm, Grant Edwards <inva...@invalid.invalid> wrote: >> I recently ran across this construct for grabbing the last >> (whitespace delimited) word in a string: >> >> s.rsplit(None,1)[1] >> >> It was somewhat obvious from the context what it was supposed >> to do, but it took a bit of Googling to figure out exactly what >> was going on. >> >> When I want the last word in a string, I've always done this: >> >> s.split()[-1] >> >> I was wondering what the advantage of the rsplit(None,1)[1] >> approach would be other than inducing people to learn about the >> maxsplit argument that is accepted by the split() methods? >> >> -- >> Grant Edwards grante Yow! I want a >> VEGETARIAN at BURRITO to go ... with >> visi.com EXTRA MSG!! > > hello, > perhaps rsplit generates as many elements in the list as absolutely > necesary compared to the whole list returned by split()? > konstantin
Indeed, and if the string is long it has a measurable effect: $ python -m timeit -s"s = 'oneword '*1000" "s.rsplit(None, 1)[-1]" 100000 loops, best of 3: 2.23 usec per loop $ python -m timeit -s"s = 'oneword '*1000" "s.split()[-1]" 1000 loops, best of 3: 191 usec per loop Peter -- http://mail.python.org/mailman/listinfo/python-list