面试题: Flatten Array 数组降维

Given an array that may contain nested arrays, produce a single resultant array.
方法一:

def flattenArray(inputArray, outArray=None):
    if outArray is None:
        outArray = []
    for ele in inputArray:
        if isinstance(ele, Iterable):
            flattenArray(ele, outArray)
        else:
            outArray.append(ele)
    return outArray
     
if __name__ == "__main__":
    print(flattenArray([1, 2, [3, 4], [5, [6, [7, 8]]], 9]))

方法二:

# returns iterator 
def flatten_iter(iterable):    #  使得该函数变成一个生成器
    """
    Takes as input multi dimensional iterable and
    --> Takes multi dimensional iterable as input and
    returns generator which produces one dimensional output.
    """
    for element in iterable:
        if isinstance(element, Iterable):
            yield from flatten_iter(element)    
        else:
            yield element
 
if __name__ == "__main__":
    flatten_iter([1,2,3,[4,5,6],[7,[8,9]]])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值