我在 Elixir 中有一个数字列表,我想删除重复项,但仅限于连续的dupes。
对于以下输入列表:[1,1,2,2,1,1,1,1,3,3,2,2]
。
结果应该是:[1,2,1,3,2]
。
答案 0 :(得分:4)
Enum.dedup/1
完全符合您的要求:它只用一个实例替换连续的重复元素,并返回列表中的其余元素。
iex(1)> Enum.dedup([1, 1, 2, 2, 1, 1, 1, 1, 3, 3, 2, 2])
[1, 2, 1, 3, 2]
这适用于与===
相等的所有值,包括地图:
iex(2)> Enum.dedup([%{a: 1}, %{a: 2}, %{a: 2}, %{a: 2}])
[%{a: 1}, %{a: 2}]