给定一个包含由空格分隔的单词和数字的字符串。需要在这一行中找到连续的三个单词。
def m (words) :
a = 0
for w in words.split() :
pass
while w.isalpha() is True :
a += 1
if a == 3 :
return True
else :
return False # вот на этом я застрял.
这是一个可以满足您需要的功能。
该函数在循环中逐字运行。如果单词由字母组成(isalpha() 函数对此进行检查),则它会累加计数器(我们递增变量),否则会将其重置为零。如果计数器从三个单词开始累积,那么我们在该行中找到了 3 个连续的单词。
该问题可以解决,例如,如下:
该方法将返回连续遇到的前三个单词的列表,或者
None如果没有这样的单词组。要在字符串中找到三个连续的单词并输出它们:
对于 Python 程序员来说,这是直接的代码,但它进行了不必要的复制和比较。
这是类似于使用@Alexcei Shmakov
count的 答案的解决方案的代码 -此选项打印单词 triple 本身,而不仅仅是它是否在行中,作为解决方案:count为了不创建一个可能很大的空格分隔字符串列表,可以使用正则表达式:
此选项查找不是数字、空格的字符(适合设置问题中的问题),因为该
re模块不支持模拟str.isalpha。regex模块支持\p{Letter}.测量可以显示性能与实际输入是否存在差异。