2010-09-18 80 views

回答

31
user=> (distinct '(34 56 45 34 56 89 11 4 11 78 11)) 
(34 56 45 89 11 4 78) 
+0

排序列表有一些更快的等效嗎? – nha 2015-01-04 21:37:05

+0

@nha,我不知道。 – missingfaktor 2015-01-06 08:02:24

9

如果你不關心順序,你可以簡單的列表轉換爲一組:

user=> (set '("a" "b" "c" "a" "lala" "d")) 
#{"a" "b" "c" "d" "lala"} 
+4

除了訂購,推入集合不是懶惰,但'distinct'是。 – 2010-09-18 20:52:09

+1

也謝謝你的回答。 – jeon 2010-09-18 22:36:05

+0

如果我關心訂單怎麼辦?例如,我想要在前面重複最多等等。 – noMAD 2014-03-11 00:40:15

3

重複數據刪除是相當的快,因爲對於重複數據刪除的有序列表只保留先前的元素在內存中。

+0

不錯,我不知道關於重複數據刪除,並且看到它只是自clojure 1.7以來才實現 - 這裏是另一篇關於它的文章:http://stackoverflow.com/questions/25552506/better-sequence-duplicate-remover/25556645#25556645 – 2015-12-18 00:28:28