定义一个名为how_many_substr_of_string(...)的函数,该函数接收两个参数,第一个参数是带有字符串的列表(将其命名为listst),第二个参数是单个字符串(将其命名为st)。该函数应返回一个数字,指示列表listst中有多少个字符串是字符串st中的子字符串
作为示例,以下代码片段:
listst = ["a","bc","dd"]
st = "abc"
res = how_many_substr_of_string(listst,st)
print (res)
应该产生输出: 2
我的代码:
def how_many_substr_of_string(listst, st):
return listst.count(st)
我的代码不适用于以下条件和任何其他相关条件:
listst = ["a","bc","dd"]
st = "abc"
res = how_many_substr_of_string(listst,st)
print (res)
我得到的输出为0,但应该为2。如何解决此问题或编辑我的代码,使其可以在问题中所示的任何其他情况下使用
答案 0 :(得分:2)
def how_many_substr_of_string(listst, st):
return sum(1 for item in listst if item in st)
关于即使字符串被视为数组也能正常工作的注释-Python将依次使用__contains__(self, item)
,__iter__(self)
和__getitem__(self, key)
来确定项目是否位于给定的字符串中
答案 1 :(得分:0)
使用此:
listst = ["a","bc","dd"]
s = "abc"
def how_many_substr(iterable, st):
res = 0
for i in iterable:
if i in st: res += 1
return res
print(how_many_substr(listst, s))
输出:
2
您的代码为:
def how_many_substr_of_string(listst, st):
return listst.count(st)
这计算st
在listst
中发生的次数,即0。