2017-05-16 4 views
-1

Ich versuche, eine Funktion zu erstellen, die funktionale Programmierung verwendet, die eine Zahl und eine Liste von Zahlen als Argumente erhält und die Häufigkeit zurückgibt In der Liste. Und ich kann nicht für das Leben von mir herausfinden, warum ich diesen Fehler bekomme. Ich habe ähnliche Fragen durchsucht, aber ich kann nicht verstehen, was falsch ist. HierPython - "'int' Objekt ist nicht untergruppierbar" auf Listenobjekt

ist der Code:

def count(num, list): 
    if list == []: 
     return 0 
    elif list[0] == num: # I am getting the error on this line 
     return 1 + count(list[1:], num) 
    else: 
     return 0 + count(list[1:], num) 

print (count(4, [])) 
print (count(3, [1, 2, 3, 4, 5])) 
print (count(1, [1, 1, 1])) 
+0

Sie sollten wahrscheinlich die erste ändern, wenn auf "nicht auflisten" anstelle von == [] –

Antwort

2

num der erste Parameter sein sollte

def count(num, list): 
    if list == []: 
     return 0 
    elif list[0] == num: 
     return 1 + count(num, list[1:]) # <- here 
    else: 
     return 0 + count(num, list[1:]) # <- and here 
+1

Wow, ich Ich kann nicht glauben, dass ich das überhaupt nicht bemerkt habe. Ein Blick auf den gleichen Code für eine Weile macht dich offensichtlich blind. Vielen Dank! :) –

Verwandte Themen