python多层嵌套转换为一维列表

1.递归方式

[1,2,[3,[4,5],6]]

def expand_list(nested_list):
    for item in nested_list:
        if isinstance(item, (list, tuple)):
            for sub_item in expand_list(item):
                yield sub_item
        else:
            yield item

注:
isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。
isinstance() 与 type() 区别:

  • type() 不会认为子类是一种父类类型,不考虑继承关系。

  • isinstance() 会认为子类是一种父类类型,考虑继承关系。

如果要判断两个类型是否相同推荐使用 isinstance()。

2.推导式

func = lambda x: [y for l in x for y in func(l)] if type(x) is list else [x]

猜你喜欢

转载自blog.csdn.net/qq_37287621/article/details/84111494