Wie kann ich doppelte Werte aus einer Liste entfernen? Zum BeispielWie entferne Duplikate aus einer Liste in Clojure?
(remove-duplicates ["a" "b" "c" "a"])
=> ("a" "b" "c")
Wie kann ich doppelte Werte aus einer Liste entfernen? Zum BeispielWie entferne Duplikate aus einer Liste in 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)
Wenn Sie nicht über die Reihenfolge ist egal, können Sie einfach die Liste in eine Reihe konvertieren:
user=> (set '("a" "b" "c" "a" "lala" "d"))
#{"a" "b" "c" "d" "lala"}
Dedupe desto schneller Äquivalent für sortierte Listen seit dedupe ist behält nur das vorherige Element im Speicher.
Schön, ich wusste nicht über Deduplizierung, und es ist nur seit clojure 1.7 implementiert - Hier ist ein weiterer Beitrag darüber: http://StackOverflow.com/Questions/25552506/Better-Sequence-Duplicate-Remover/25556645#25556645 –
Gibt es eine schnellere Entsprechung für sortierte Listen? – nha
@nha, ich weiß es nicht. – missingfaktor