检查字符串在 python 中是否至少包含五个字符



我试图检查stringvar1中至少包含五个characters。我正在使用count但它没有像我预期的那样工作。同时,var2它包含来自var1five characters多个。

var1 = "today news report"
var2 = "news report"

if var2.count(var1)  >=  5:
    print("yes")
else:
    print("nooooooo")

欢迎您的建议来实现这一点。

>str.count正在搜索var2var1 a的完全匹配项。相反,您可以使用集合,并查看交集的长度是否大于阈值:

var1 = "today news report"
var2 = "news report"
if len(set(var1) & set(var2)) >=  5:
    print("yes")
else:
    print("nooooooo")
# yes

如果你想查看var2是否包含5个或更多在var1中找到的相同字符,你可以使用Python的set结构,它有一个set.intersection()方法。intersection() 方法将传递的内容转换为 anoter 集,并返回两者之间相同的元素。

var1 = "today news report"
var2 = "news report"
if len(set(var1).intersection(var2)) >= 5:
    print("Yes")
else:
    print("No")
# Yes

您可以看到set为您提供了var1中的所有唯一字符,而intersection仅为您提供共享的角色。

print(set(var1))
# {'d', ' ', 'w', 'n', 't', 's', 'r', 'y', 'o', 'a', 'e', 'p'}
print(set(var1).intersection(var2))
# {'r', 'n', 'p', 's', 'e', 'o', 'w', ' ', 't'}

&运算符也可用于获取交集,因此set(var1).intersection(var2)等效于set(var1) & set(var2)

如果你想使用count

var1 = "today news report"
var2 = "news report"

count = 0
for letter in set(var1):
    if letter != ' ': # Check if space
        count += (list(set(var2))).count(letter)
print("yes") if count >= 5 else print ("nooo")
#if count >= 5:
#    print ("yes")
#else:
#    print ("nooo")

#count = 8

最新更新