2016-09-30 68 views
0

如果列表中有三个相同的整数,则返回布尔值True。如果它没有三个相同的整数,它将返回一个布尔型假。我在写这篇文章时遇到了麻烦。计数功能是否执行此操作?另外,是否需要导入一个空列表?我有这个,我得到的错误“'int'对象没有属性'count'”。谢谢!列表中恰好包含三个相同的元素?

def threeOfAKind(aList,n): 
     if aList.count(n): 
      return True 
     else: 
      return False 

threeOfAKind([1,2,3,4,4,4],4])应返回true 我试图aList.count(N),但现在我得到真正的不管我叫

+0

你是怎么调用这个方法的?因为根据错误,你显然将'n'作为整数传递,这就解释了你所得到的错误。 – idjaw

+0

threeOfAKind([1,2,3,4,4,4],4])这应该返回True –

+1

把这个放在你的问题中。你明白你为什么会收到你的错误信息吗?你是否意识到'n'实际上是你传入你的方法的整数'4'?你正试图在一个整数上调用'count',这个消息告诉你'int'没有'count'属性。 – idjaw

回答

0

这条线:

if aList.count(n): 

就是为什么你的代码是不工作的原因。

listcount函数返回列表中出现次数n。如果您的参数是[1,2,3,4,4,4]和4,aList.count(n)将返回3,因为4在列表中出现3次。

所以上述代码行是基本相同:

if 3: 

现在3将被转换为布尔值,因为这是预期的if条件。如果你想知道3被转换为True或False,只需在交互式Python解释器中尝试bool(3)即可。

你想要的是检查n是否在列表中发生3次,所以你可能需要比较返回的值aList.count(n)与什么?如果aList.count(n)返回2或4,你显然不想返回True,对吗?

相关问题