リストから重複しない値を見つけようとしています。elixir-langリスト内の重複しない要素を見つける
元のリスト:
iex> list = [2, 3, 4, 4, 5, 6, 6, 6, 7, 8, 8, 8, 9, 9, 10, 10, 10]
[2, 3, 4, 4, 5, 6, 6, 6, 7, 8, 8, 8, 9, 9, 10, 10, 10]
iex> unique = Enum.uniq(list)
[2, 3, 4, 5, 6, 7, 8, 9, 10]
iex> nondupes = unique -- Enum.uniq(list -- unique)
[2, 3, 5, 7]
結果:[2、3、5、7]
エリキシルでこれを達成するためのより良い方法があった場合、私は思っていた/アーラン
ます。また '二組、ユニークなもので、あなたがこれまでに見てきたすべてのエントリを保つ1と相互にreduce'ことができます。すべての項目について、表示されたリストにある場合はuniqから削除する必要があります。そうでない場合は両方に追加します。 –
ちょっとした改善:reduceステップでは、手動get/putの代わりに '&Dict.update(&2、&1、1、fn x - > x + 1 end)'を使うこともできます。 –