📜  列表列表到单个列表 python - TypeScript (1)

📅  最后修改于: 2023-12-03 15:07:10.978000             🧑  作者: Mango

列表列表到单个列表 Python - TypeScript

在编程中,经常需要将嵌套的列表转化为单个列表。无论是Python还是TypeScript,这个问题都是非常常见的。下面介绍两种方法:一种使用递归,一种使用列表解析。

1. 递归

在Python中,可以使用递归函数来实现将嵌套的列表转化为单个列表。

def flatten(lst):
    result = []
    for i in lst:
        if isinstance(i, list):
            result.extend(flatten(i))
        else:
            result.append(i)
    return result

在TypeScript中,可以使用类似的递归函数来实现。

function flatten(lst: any[]): any[] {
    let result: any[] = [];
    for (let i of lst) {
        if (Array.isArray(i)) {
            result = result.concat(flatten(i));
        } else {
            result.push(i);
        }
    }
    return result;
}
2. 列表解析

在Python中,也可以使用列表解析来实现将嵌套的列表转化为单个列表。

def flatten(lst):
    return [i for sublst in lst for i in (flatten(sublst) if isinstance(sublst, list) else [sublst])]

在TypeScript中,也可以使用类似的列表解析来实现。

function flatten(lst: any[]): any[] {
    return lst.reduce((result: any[], item: any): any[] =>
        result.concat(Array.isArray(item) ? flatten(item) : item),
        []);
}

无论采用哪种方法,都非常简单易懂。以上代码均已测试,并可在Python和TypeScript环境下使用。