在Python中返回字符串中第一个非空白字符的最低索引

18 投票
7 回答
26872 浏览
提问于 2025-04-15 20:00

在Python中,最简单的方法是什么呢?

string = "   xyz"

必须返回索引 = 3

7 个回答

2

看起来那些认为“正则表达式可以做任何事情”的人今天没上班,所以我来补充一下:

>>> tests = [u'foo', u' foo', u'\xA0foo']
>>> import re
>>> for test in tests:
...     print len(re.match(r"\s*", test, re.UNICODE).group(0))
...
0
1
1
>>>

顺便说一下:所花的时间是 O(答案),而不是 O(输入字符串的长度)

6
>>> next(i for i, j in enumerate('   xyz') if j.strip())
3

或者

>>> next(i for i, j in enumerate('   xyz') if j not in string.whitespace)
3

在 Python 2.5 之前的版本中,你需要这样做:

(...).next()
51

在编程中,有时候我们需要处理一些数据,比如从一个地方获取数据,然后在另一个地方使用这些数据。这个过程就像是把水从一个水桶倒到另一个水桶里。

有些时候,数据的格式可能不太一样,就像是一个水桶的口比较大,而另一个水桶的口比较小。这时候,我们就需要想办法把数据转换成合适的格式,这样才能顺利倒进去。

另外,处理数据的时候,我们还需要注意数据的安全性,确保不会出现错误或者丢失数据。这就像是在倒水的时候,要小心不要洒出来。

总之,处理数据的过程需要仔细和耐心,确保每一步都能顺利进行。

>>> s = "   xyz"
>>> len(s) - len(s.lstrip())
3

撰写回答