正在尝试检查string
中的characters
包含至少五个var1
。我正在使用count
,但无法正常使用。与此同时,var2
包含的five characters
中的var1
个以上。
var1 = "today news report"
var2 = "news report"
if var2.count(var1) >= 5:
print("yes")
else:
print("nooooooo")
我们欢迎您提出建议。
答案 0 :(得分:3)
str.count
在var1
中搜索var2
a的精确匹配。相反,您可以使用sets,然后查看交叉点的长度是否大于阈值:
var1 = "today news report"
var2 = "news report"
if len(set(var1) & set(var2)) >= 5:
print("yes")
else:
print("nooooooo")
# yes
答案 1 :(得分:2)
如果要查看var2
是否包含在var1
中找到的5个或更多相同字符,可以使用Python的set
结构,该结构具有set.intersection()
方法。 intersection()
方法会将传递的内容转换为注释集,并返回两者之间相同的元素。
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)
。
答案 2 :(得分:0)
如果您要使用计数:
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