如果字符在字符串中出现三次或三次以上,则计数

2024-05-29 09:43:50 发布

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

我需要确定一个字符串中是否有3个或更多的z,如果有则返回1,否则返回0。你知道吗

例如:

print punk('abc')
# should return 0
print punk('laz zzzz')
# should return 1

我的尝试:

def punk(s):
    lett=('z')
    for s in lett:
        if len(s)>=3:
            return 1
        else:
            if len(s)<=3:
                return 0

这只返回0,不管有多少个z作为输入。我哪里出错了?你知道吗


Tags: 字符串inforlenreturnifdefelse
3条回答

您需要遍历传入的字符串中的每个字符,而不是lett中的每个项。你知道吗

def punk(string):
    letters = ('Z', 'z')
    zCount = 0
    for char in string:
        if char in letters:
            zCount += 1

    return 1 if zCount >= 3 else 0

如果不想使用内置函数,可以尝试以下方法:

def punk(s):
    count = 0
    for letter in s:
        if letter == "z" or letter == "Z":
            count += 1
    if count >= 3:
        return 1
    else:
        return 0
def punk(s):
    counter = 0
    for char in s:  # iterate over each character in s
        if char == 'z':            
            counter += 1
    return int(counter >= 3)   # int(False) => 0, int(True) => 1

您可以像这样使用内置的^{}

def punk(s): 
    return int(s.count('z') >= 3)

也可以使用^{}这样实现:

int(reduce(lambda x,y: x+int(y=='z'), a, 0) >= 3)

相关问题 更多 >

    热门问题