我知道在elixir中,要从列表中删除重复的值,需要使用Enum.uniq(my_list)
。
给定一个[1, 1, 2, 3, 3, 4, 5]
列表,我将使用什么来使结果为[2, 4, 5]
。有没有办法不使用嵌套循环?
发布于 2021-01-11 10:30:08
您可以使用Enum.frequencies/1
来计算每个元素有多少,然后只取出现一次的项:
[1, 1, 2, 3, 3, 4, 5]
|> Enum.frequencies()
|> Enum.filter(&match?({_, 1}, &1))
|> Enum.map(&elem(&1, 0))
或者,从链接的问题中,您可以使用相当晦涩的:
list = [1, 1, 2, 3, 3, 4, 5]
uniq = Enum.uniq(list)
uniq -- list -- uniq
https://stackoverflow.com/questions/65663786
复制相似问题