On Sat, May 8, 2010 at 10:49 PM, dasacc22 <dasac...@gmail.com> wrote:

> Hi
>
> This is a simple question. I'm looking for the fastest way to
> calculate the leading whitespace (as a string, ie '    ').
>
> Here are some different methods I have tried so far
> --- solution 1
>
> a = '    some content\n'
> b = a.strip()
> c = ' '*(len(a)-len(b))
>

use lstrip if you want to remove leading whitespaces only.
strip removes trailing white spaces too

>
> --- solution 2
>
> a = '    some content\n'
> b = a.strip()
> c = a.partition(b[0])[0]
>
> --- solution 3
>
> def get_leading_whitespace(s):
>    def _get():
>        for x in s:
>            if x != ' ':
>                break
>            yield x
>    return ''.join(_get())
>

why do you need a generator (and as you mentioned the extra function call
overheads)?

How about this?

def get_leading_whitespaces(s):
    count = 0
    for c in s:
        if c != ' ': break
        count += 1
    return ' ' * count


>
> ---
>
> Solution 1 seems to be about as fast as solution 2 except in certain
> circumstances where the value of b has already been determined for
> other purposes. Solution 3 is slower due to the function overhead.
>
> Curious to see what other types of solutions people might have.
>
> Thanks,
> Daniel
> --
> http://mail.python.org/mailman/listinfo/python-list
>



-- 
Regards
Shashank Singh
Senior Undergraduate, Department of Computer Science and Engineering
Indian Institute of Technology Bombay
shashank.sunny.si...@gmail.com
http://www.cse.iitb.ac.in/~shashanksingh
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to