检查字符串是否连续包含三个单词

2024-04-19 16:13:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了一个由空格(一个空格)分隔的单词和数字组成的字符串。这些词只包含字母。我应该检查字符串是否连续包含三个单词。例如,字符串"start 5 one two three 7 end"连续包含三个单词,因此它应该返回True。在

示例:

checkio("Hello World hello") == True
checkio("He is 123 man") == False
checkio("1 2 3 4") == False
checkio("bla bla bla bla") == True
checkio("Hi") == False

有人能帮我吗?在


Tags: 字符串falsetrue示例字母数字单词one
2条回答

下面是一个使用zipitertools.islice的解决方案:

from itertools import islice

def checkio(x):
    split = x.split()
    for values in zip(split, islice(split, 1, None), islice(split, 2, None)):
        if all(i.isalpha() for i in values):
            return True
    return False

checkio("Hello World 3 hello 2 hello")  # False
checkio("Hello 3 World hello hello")    # True

更有效地,您可以使用itertools.groupby

^{pr2}$

您可以使用正则表达式来实现这一点。在

import re
bool(re.search(r'\b[a-z]+\s+[a-z]+\s+[a-z]+\b', 'test test 1 test', re.IGNORECASE))

相关问题 更多 >