无法在字符串中找到最大的空白长度

时间:2016-10-04 23:44:50

标签: python string

我需要找到字符串中最大的空白长度。不知道什么是错的。

def check1(x):
    cc = ()
    for i in x:
        if i != " ":
            lis.append(cc)
            cc=0
        else:
            cc +=1
            new.append(cc)
            print(cc)

我不确定什么是错的,它没有添加到附加列表中。

2 个答案:

答案 0 :(得分:2)

使用regex es和内置max

import re
max_len = max(map(len, re.findall(' +', sentence)))

re.findall(' +', sentence)会找到所有出现的一个或多个空格。

map(len, ...)会将此数组转换为相应字符串长度的数组。

max(...)将获得这些字符串长度的最高值。

答案 1 :(得分:1)

您可以使用简单的itertools.groupby

>>> from itertools import groupby
>>> s = 'foo     bar       baz          lalala'
>>> max(len(list(v)) for is_sp, v in groupby(s, str.isspace) if is_sp)
10

groupby将找到连续运行的空白(is_sp == True)和连续运行的非空白(is_sp == False)。在我们的例子中,我们只关心空白的运行,所以我们过滤掉非空白情况,然后得到连续运行的长度。最后,唯一剩下的就是选择所有长度中最大的一个。