我有一个看起来像这样的值列表:
["Some", "random", "values", [], "in", "a", [], "list"].
我想创建一个删除了空列表项的新列表。像这样:
["Some", "random", "values", "in", "a", "list"].
最简单的方法是什么?我假设使用列表推导来构建新列表将是最有效的方法。如何使用列表推导过滤此列表?
答案 0 :(得分:9)
列表推导是一个更简洁的列表:filter / 2:
[E || E <- List, E /= []]
答案 1 :(得分:3)
这可以使用lists:filter
来实现。
List = ["Some", "random", "values", [], "in", "a", [], "list"],
lists:filter(fun(X) -> X /= [] end, List).
lists:filter
带来了乐趣和清单。乐趣应该采取列表项并返回true或false。如果乐趣返回true
,则会在新列表中返回该项目。
可在此处找到更多信息:http://erlangcentral.org/wiki/index.php?title=Filtering_Lists