我知道在 Elixir 中要从列表中删除重复值,您需要使用Enum.uniq(my_list).
给定一个列表,列出[1, 1, 2, 3, 3, 4, 5]我将使用什么来获得结果[2, 4, 5]。有没有办法不使用嵌套循环?
您可以使用Enum.frequencies/1来计算每个元素有多少个,然后只取出出现一次的项目:
[1, 1, 2, 3, 3, 4, 5]
|> Enum.frequencies()
|> Enum.filter(&match?({_, 1}, &1))
|> Enum.map(&elem(&1, 0))
Run Code Online (Sandbox Code Playgroud)
或者,从链接的问题中,您可以使用相当晦涩的:
list = [1, 1, 2, 3, 3, 4, 5]
uniq = Enum.uniq(list)
uniq -- list -- uniq
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
312 次 |
| 最近记录: |