如何在字符串中查找前导序列的长度?

Mar*_*son 3 python string

我想计算一个字符串中前导空格的数量.这样做的最Pythonic方法是什么?

>>>F(' ' * 5 + 'a')
5
Run Code Online (Sandbox Code Playgroud)

(更新)以下是几个答案的时间安排:

import timeit
>>> timeit.timeit("s.index(re.search(r'\S',s).group())", number=10000, setup="import re;s='     a'")
0.027384042739868164
>>> timeit.timeit("len([i for i in itertools.takewhile(str.isspace,s)])", number=10000, setup="import itertools;s='     a'")
0.025166034698486328
>>> timeit.timeit("next(idx for idx,val in enumerate(s) if val != ' ')", number=10000, setup="s='     a'")
0.028306961059570312
>>> timeit.timeit("F('     a')", number=10000, setup="def F(s): return len(s)-len(s.lstrip(' '))")
0.0051808357238769531
Run Code Online (Sandbox Code Playgroud)

Bha*_*Rao 7

使用re模块

>>> s
'     a'
>>> import re
>>> s.index(re.search(r'\S',s).group())
5
Run Code Online (Sandbox Code Playgroud)

运用 itertools

>>> import itertools
>>> len([i for i in itertools.takewhile(str.isspace,s)])
5
Run Code Online (Sandbox Code Playgroud)

蛮力的方式

>>> def F(s):
...     for i in s:
...          if i!=' ':
...               return s.index(i)
... 
>>> F(s)
5
Run Code Online (Sandbox Code Playgroud)