我需要找到字符串中最大的空白长度。不知道什么是错的。
def check1(x):
cc = ()
for i in x:
if i != " ":
lis.append(cc)
cc=0
else:
cc +=1
new.append(cc)
print(cc)
我不确定什么是错的,它没有添加到附加列表中。
答案 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
)。在我们的例子中,我们只关心空白的运行,所以我们过滤掉非空白情况,然后得到连续运行的长度。最后,唯一剩下的就是选择所有长度中最大的一个。