我想寫一個遞歸函數,如果元素在嵌套列表中,它將返回True,否則它的假不是。到目前爲止,我的代碼僅適用於某些元素:如何使用遞歸在嵌套列表中查找元素?
def inthere(ls, s):
if s in ls:
return True
else:
for thing in ls:
if isinstance(thing, list):
return inthere(thing,s)
當我運行:
A=[[2,4],[6,[[[8],10]],12],14,16]
print(inthere(A,12)) #Should return True, but does not.
print(inthere(A,2)) #Returns True, as it should.
我確實失去了一些東西,我似乎無法告訴,我感謝所有幫助!
你錯過了如何逐步執行代碼,看看裏面有什麼它發生:http://stackoverflow.com/questions/4929251/can-you-step-through-python-code-to-help-debug-issues或至少[printf調試](http://stackoverflow.com/questions/ 189562/what-is-proper-name-for-doing-debugging-by-adding-print-statements) – TessellatingHeckler
@wwii同意。快速搜索顯示了很多可用於此問題的awnsers – FancyDolphin
使用[Python中列出的[列出不規則列表]列表]的已接受答案(http://stackoverflow.com/questions/2158395/flatten-一個不規則的列表在Python中)迭代平展列表並檢查。 – wwii