📜  展平列表 python - TypeScript (1)

📅  最后修改于: 2023-12-03 14:53:57.319000             🧑  作者: Mango

展平列表 Python - TypeScript

在编程中,我们常常需要将多层嵌套的列表或数组展平为一维列表。这种操作可以用于数据分析、机器学习等领域中。本文将介绍如何使用 Python 和 TypeScript 来展平列表。

Python

Python 中可以使用递归函数来实现列表展平。具体实现如下:

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

如上代码,我们定义了递归函数 flatten,参数为待展平列表 lst。在函数中,我们首先创建一个空列表 result,然后使用 for 循环遍历每个元素。如果当前元素是一个列表,则递归调用 flatten 函数,将该列表展平后合并到 result 中。反之,则将当前元素直接添加到 result 中。最后,我们返回 result 列表。

以下是展平列表的示例:

lst = [[1, 2, [3]], 4]
result = flatten(lst)
print(result)  # [1, 2, 3, 4]
TypeScript

在 TypeScript 中,我们也可以使用递归函数来实现列表展平。具体实现如下:

function flatten(lst: any[]): any[] {
    let result: any[] = []
    lst.forEach(item => {
        if (Array.isArray(item)) {
            result.push(...flatten(item))
        } else {
            result.push(item)
        }
    })
    return result
}

如上代码,我们定义了一个函数 flatten,参数类型为 any[],返回值类型为 any[]。在函数中,我们首先创建一个空数组 result,然后使用 forEach 循环遍历每个元素。如果当前元素是一个数组,则使用展开运算符 ... 将该数组展平后合并到 result 中。反之,则将当前元素直接添加到 result 中。最后,我们返回 result 数组。

以下是展平列表的示例:

const lst: any[] = [[1, 2, [3]], 4]
const result: any[] = flatten(lst)
console.log(result)  // [1, 2, 3, 4]

以上就是使用 Python 和 TypeScript 展平列表的方法。无论使用哪种语言,递归函数都是一种简便而有用的实现方式。希望这篇文章能帮助您更好地理解列表展平的实现过程。