我想要计算字符串中前导空格的数量。最Pythonic的方法是什么?
>>>F(' ' * 5 + 'a')
5
(更新)以下是几个回答的时间表:
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
F
这样使用大写字母作为函数名绝对不是Pythonic的做法。 :) - PM 2Ring