2016-09-30 72 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,對嗎?

相關問題