给出的erlang列表为L = [[ [], [1,3], [4,5] ]].
预期的输出为[[1,3], [4,5]]
我尝试使用lists:flatten/1
,但它返回的扁平化列表为[1,3,4,5]
。
答案 0 :(得分:0)
这个问题是模棱两可的,因为它并没有真正告诉我们如何进行展平。仅从您的输入/输出示例来看,您似乎只想展平一个级别而忽略空列表。这可以通过以下方式实现:
1> lists:filter(fun (X) -> X /= [] end, lists:append([[ [], [1,3], [4,5] ]])).
[[1,3],[4,5]]
但是,可以想象其他符合这些标准的拼合。希望这可以帮助您入门!
答案 1 :(得分:0)
否,flatten函数返回一个列表,其中包含不是列表的元素,它将消除输入列表中的所有列表。
如果您执行了高效的算法,则无需展平任何列表,因此创建列表的最佳方法是在列表顶部添加元素,并尝试从不使用++
和--
运算符。