如何使用列表理解在满足条件时增加分数

2024-04-19 19:50:04 发布

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

“”“编写一个程序来计算mystring中子字符串的出现次数”“”

mystring = "abcdcdcdc"
substring = "cdc"
score = 0
ss_len = len(substring)
for i in range(len(mystring)):
    if mystring[i : i + ss_len] == substring:
        score += 1
print(score)

你好,

如何使用列表理解编写上述工作代码?这将返回3作为结果

下面是我所拥有的,但并没有达到预期效果

s = [score = score +1 for i in range(len(substring)) if mystring[i : i + ss_len] == substring ]
print(s)

谢谢


Tags: 字符串in程序forlenifrangesubstring
2条回答

您可以使用sum()获取要添加到score的金额

score = sum([1 for i in range(len(mystring)) if substring==mystring[i:i+len(substring)]])

以上代码中的一个更正,您可以直接使用 @Shazers的答案是正确的,但您可以编辑一点以获得更好的性能

s = sum([1 for i in range(len(mystring)) if substring==mystring[i:i+len(substring)]])

相关问题 更多 >