[英]Recursively traverse a list in python
在學習練習中,我們被要求遍歷多維列表並在單個函數/ for循環中打印其所有值。
我的大腦一直停留在遞歸函數應該如何工作的基礎上,通過一些在線示例我想出了我應該得到的答案,但它在第一個列表中停止了它找到的值。
我的列車在這里犯了什么錯誤?
def walk(l):
for v in l:
if type(v) is list:
return walk(v)
else:
print(v)
l = [
[1,2,3],
[4,5,6],
[7,8,9]
]
walk(l)
>>1
>>2
>>3
刪除return語句,因為它阻止你進入for循環的下一次迭代(當你調用walk(l)時 ,它會檢查第一個子列表並發現它是一個列表然后遇到return,這會停止執行當前函數,所以它不會再進入下一個迭代,但只會執行walk([1,2,3])並打印出結果):
def walk(l):
for v in l:
if type(v) is list:
walk(v)
else:
print(v)
walk(l)
1
2
3
4
5
6
7
8
9
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.