在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
行吗?