我寫一個程序,找到list/srting中的特定元素的所有索引號,我必須使用遞歸,而我的func只能得到2個參數。找到所有索引與遞歸
我的問題是我的程序只找到第一個索引並停下來,我該如何處理它?
我的代碼:
def find_all(L, v):
return 0 if L[0] == v else 1 + find_all(L[1:], v)
輸入: 1. find_all([1,2,3,4,2,4,5,2,1], 2)
2. find_all("hello wonderful world", "w")
輸出: 1. [1,4,7]
2. [6,16]
我覺得你試圖寫一行代碼讓自己變得更加困難。嘗試改爲將任何遞歸問題分解爲: 'def find_all(L,v): if condition: return base_cases; else: recursive_calls;' – Austin
你是否想從[re](http://docs.python.org/2/library/re.html)重新實現'findall'? – lucasg
看不到任何理由使用遞歸:'如果我想枚舉(L)如果我[1] == v]' – lenik