Erlang列表:展平嵌套列表

时间:2020-06-21 16:50:00

标签: list erlang flatten

给出的erlang列表为L = [[ [], [1,3], [4,5] ]]. 预期的输出为[[1,3], [4,5]]

我尝试使用lists:flatten/1,但它返回的扁平化列表为[1,3,4,5]

2 个答案:

答案 0 :(得分:0)

这个问题是模棱两可的,因为它并没有真正告诉我们如何进行展平。仅从您的输入/输出示例来看,您似乎只想展平一个级别而忽略空列表。这可以通过以下方式实现:

1> lists:filter(fun (X) -> X /= [] end, lists:append([[ [], [1,3], [4,5] ]])).
[[1,3],[4,5]]

但是,可以想象其他符合这些标准的拼合。希望这可以帮助您入门!

答案 1 :(得分:0)

否,flatten函数返回一个列表,其中包含不是列表的元素,它将消除输入列表中的所有列表。 如果您执行了高效的算法,则无需展平任何列表,因此创建列表的最佳方法是在列表顶部添加元素,并尝试从不使用++--运算符。