2016-09-30 6 views
0

Dies wird Boolean True zurückgeben, wenn die Liste drei gleiche Ganzzahlen hat. Es wird ein Boolean False zurückgegeben, wenn es nicht drei gleiche Ganzzahlen hat. Ich habe Probleme, dies zu schreiben. Funktioniert die Zählfunktion? Ist es auch notwendig eine leere Liste zu importieren? Ich habe das und ich bekomme den Fehler "'int' Objekt hat kein Attribut 'count'". Vielen Dank!Liste enthält genau drei der gleichen Elemente?

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

threeOfAKind ([1,2,3,4,4,4], 4]) sollte Wahr zurückkehren habe ich versucht, aList.count (n), aber jetzt ist Wahre bekommen, egal was nenne ich

+0

Wie rufen Sie diese Methode? Weil Sie, basierend auf dem Fehler, "n" eindeutig als Ganzzahl übergeben, was den Fehler erklärt, den Sie bekommen. – idjaw

+0

threeOfAKind ([1,2,3,4,4,4], 4]) das sollte True zurückgeben –

+1

Setzen Sie das in Ihre Frage. Verstehst du, warum du deine Fehlermeldung bekommst? Ist Ihnen klar, dass "n" tatsächlich Ihre Ganzzahl "4" ist, die Sie in Ihrer Methode übergeben? Sie versuchen, 'count' für eine ganze Zahl aufzurufen, die Ihnen mitteilt, dass' int' kein Attribut 'count' hat. – idjaw

Antwort

0

Diese Zeile:

if aList.count(n): 

ist der Grund, warum Ihr Code funktioniert nicht.

Die count-Funktion von list gibt die Anzahl der Vorkommen n in der Liste zurück. Wenn Ihre Argumente [1,2,3,4,4,4] und 4 sind, wird aList.count(n) 3 zurückgeben, da 4 3 Mal in der Liste vorkommt. So über die Codezeile

ist im Grunde das gleiche wie:

if 3: 

Jetzt 3 wird in einen Booleschen Wert konvertiert werden, weil das ist, was für eine if Zustand erwartet. Wenn Sie wissen möchten, dass 3 in True oder False konvertiert wird, versuchen Sie es mit bool(3) in Ihrem interaktiven Python-Interpreter.

Was Sie wollen, ist zu überprüfen, ob n 3 mal in der Liste auftritt, so müssen Sie möglicherweise den zurückgegebenen Wert von aList.count(n) mit etwas vergleichen? Sie möchten offensichtlich nicht True zurückgeben, wenn aList.count(n) 2 oder 4 zurückgibt, oder?

Verwandte Themen