[英]for item in list or in sublist
我有一個列表,其中可能包含也可能不包含其他子列表。 我需要為列表中的每個項目以及列表中任何子列表中的每個項目運行代碼塊。 這是我的for
語句現在的樣子:
for item in mylist:
...
什么是重寫所以最有效的方法item
是從來沒有的子列表中的一個,所以該代碼將再次在所有子表的運行每一個項目,除了列表中的每個項目?
有兩種通用的方法可以遞歸進行:
def unroll_recursive(lst):
for el in lst:
if isinstance(el, list):
yield from unroll_recursive(el)
else:
yield el
或反復
from collections import deque
def unroll_iterative(lst)
q = deque(lst)
while q:
el = q.popleft()
if isinstance(el, list):
q.extend(el)
else:
yield el
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.