再帰を把握しようとしています。一般的に私はそれが何をしているのか理解していますが、私は以下の方法がどのように機能するかを理解するのに問題があります。リスト内の要素を再帰的メソッドでカウントする
def count_numbers_in_list(list):
if list == []:
return 0
return 1 + count_numbers_in_list(list[1:])
これで、list[1:]
は、最初のものを除いて、指定されたリストからすべてを返します。
しかし私が頭を上げることができないのは、リストそのものに-1のようなものを呼ぶことはないということです。したがって、この関数は完全に機能しますが、この関数が無限ループを返すことも私には意味があります。
ここで何が起きているのか誰かが私に正確に説明できることを願っています。
ありがとうございます!
'list [1:]'が何をするのかを決定する必要があります。 – miradulo
'私はそのリストを取得する[1:]は、最初のものを除いて、指定されたリストからすべてを返します。 –
問題がある場合は、 'print'ステートメントを使ってデバッグしてください。あなたはそれを簡単に手に入れるべきです。 –