在Itating nested list inside-out 中,有人告诉我“类型检查不是 Pythonic”。一般来说,这是真的:我们只想查看界面(duck-typing)而不是特定类型。
该问题询问表单的嵌套列表['a', ['c', ['e'], 'd'], 'b']
,我们特别考虑字符串原子(不可迭代)。所以,我们不能使用毯子collections.Iterable
,但另一方面isinstance(x, list)
看起来确实有点老套。
我的回答是
def traverse(l):
for x in l:
if isinstance(x, list):
traverse(x)
callback(l)
有什么更好的方法?或者isinstance
这里可以吗?