在Iterating nested list inside-out處,我被告知「類型檢查不是Pythonic」。通常,這是真的:我們只想看看界面(鴨子打字)而不是特定的類型。isinstance(x,list)在迭代包含字符串和列表的列表時
該問題詢問['a', ['c', ['e'], 'd'], 'b']
表格的嵌套列表,我們特別考慮字符串原子(不可迭代)。所以,我們不能使用毛毯collections.Iterable
,但另一方面isinstance(x, list)
似乎有點hacky。
我的回答是
def traverse(l):
for x in l:
if isinstance(x, list):
traverse(x)
callback(l)
有什麼更好的辦法?或者是isinstance
行嗎?