在Iterating嵌套列表里面,我被告知"类型检查不是Pythonic".通常,这是真的:我们只想查看接口(duck-typing)而不是特定类型.
关于表单嵌套列表的问题['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)
Run Code Online (Sandbox Code Playgroud)
什么是更好的方法?或者isinstance可以吗?