我被要求创建一个方法来返回列表中给定项目的出现次数。我知道如何编写代码来查找特定项目,但如何将其编码到计算随机项目出现次数的位置。
例如,如果我有一个 list [4, 6 4, 3, 6, 4, 9] 并且我输入类似的内容
s1.count(4),它应该返回3或者s1.count(6)应该返回2。
虽然我不允许使用和内置函数。
在最近的一次作业中,我被要求统计sub string "ou"在给定字符串中出现的次数,我将其编码
if len(astr) < 2:
return 0
else:
return (astr[:2] == "ou")+ count_pattern(astr[1:])
这样的东西行得通吗??
def count(self, item):
num=0
for i in self.s_list:
if i in self.s_list:
num[i] +=1
def __str__(self):
return str(self.s_list)
请您参考如下方法:
如果这个列表已经排序,“最有效”的方法——就 Big-O 而言——将是在找到值时使用向前计数/向后计数执行二进制搜索。
但是,对于示例中的未排序 列表,计算出现次数的唯一方法是依次遍历每个项目(或先对其进行排序;-)。这是一些伪代码,请注意它比原始帖子中提供的代码更简单(没有if x in list 或count[x] ):
set count to 0
for each element in the list:
if the element is what we are looking for:
add one to count
快乐编码。
