Erlang列表:拼合嵌套列表

juzqafwq  于 2022-12-08  发布在  Erlang
关注(0)|答案(2)|浏览(180)

给定的Erlang列表为L = [[ [], [1,3], [4,5] ]].,输出应为[[1,3], [4,5]]
我尝试使用lists:flatten/1,但它返回的扁平列表为[1,3,4,5]

flmtquvp

flmtquvp1#

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

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

但人们也可以想象其他符合这些标准的平坦化。希望这能让你开始!

sauutmhj

sauutmhj2#

不,flatten函数返回一个包含非列表元素的列表,它会消除输入列表中的所有列表。如果您执行了一个有效的算法,则不需要对任何列表进行flatten,因此创建列表的最佳方法是在列表的头部添加元素,并尽量不要使用++--操作符。

相关问题