📅  最后修改于: 2023-12-03 15:07:10.978000             🧑  作者: Mango
在编程中,经常需要将嵌套的列表转化为单个列表。无论是Python还是TypeScript,这个问题都是非常常见的。下面介绍两种方法:一种使用递归,一种使用列表解析。
在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;
}
在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环境下使用。