Comment puis-je supprimer les valeurs en double d'une liste? Par exemple,Comment supprimer les doublons d'une liste dans Clojure?
(remove-duplicates ["a" "b" "c" "a"])
=> ("a" "b" "c")
Comment puis-je supprimer les valeurs en double d'une liste? Par exemple,Comment supprimer les doublons d'une liste dans Clojure?
(remove-duplicates ["a" "b" "c" "a"])
=> ("a" "b" "c")
user=> (distinct '(34 56 45 34 56 89 11 4 11 78 11))
(34 56 45 89 11 4 78)
Si vous ne se soucient pas de l'ordre, vous pouvez simplement convertir la liste à un ensemble:
user=> (set '("a" "b" "c" "a" "lala" "d"))
#{"a" "b" "c" "d" "lala"}
Dedupe est l'équivalent plus rapide pour les listes triées depuis dedupe garde seulement l'élément précédent en mémoire.
Nice, je ne savais pas à propos de dedupe, et voir que c'est seulement mis en œuvre depuis clojure 1.7 - Voici un autre post à ce sujet: http://stackoverflow.com/questions/25552506/better-sequence-duplicate-remover/25556645#25556645 –
Existe-t-il un équivalent plus rapide pour les listes triées? – nha
@nha, je ne sais pas. – missingfaktor