代码的输出是3.有人可以解释如何?

时间:2016-06-25 17:16:17

标签: python

def my_fun(x):     
    z = 0     
    for item in x:         
       m = x.count(item)         
       if m > z:             
           z = m     
       return z  

y = ["cat", 4, "dog" , "cat" , 2, "cat", 2] 
print (my_fun(y))

代码的输出为3。有人可以解释一下吗?

1 个答案:

答案 0 :(得分:2)

你的for循环立即返回,因为return语句在for循环中,并且z = m被执行。

即使返回在循环之外,你仍然有3,因为cat可能出现在列表中并且出现次数最多。

你基本上有这一行代码

print( ["cat", 4, "dog" , "cat" , 2, "cat", 2].count("cat")) 

我相信你可以看到为什么输出3.目前还不清楚你还有什么预期