如果您是说第一个非空白字符,那么我会使用类似这样的东西...>>> a=' Hello world'>>> len(a) - len(a.lstrip())3另一个有趣的地方:>>> sum(1 for _ in itertools.takewhile(str.isspace,a))3但是我敢打赌,第一个版本会更快,因为它实际上只在C语言中执行此精确循环—当然,它需要在完成后构造一个新字符串,但这实际上是免费的。为了完整起见,如果字符串为空或由完全空白组成,则这两个字符串都将返回len(a)(如果您尝试使用它进行索引,则将无效……)>>> a = "foobar">>> a[len(a)]Traceback (most recent call last): File "<stdin>", line 1, in <module>IndexError: string index out of range
您也可以尝试:a = ' Hello world'a.index(a.lstrip()[0])=> 3只要字符串包含至少一个非空格字符,它就可以工作。我们可以更小心一点,并在进行以下检查:a = ' '-1 if not a or a.isspace() else a.index(a.lstrip()[0])=> -1