Ruby删除可枚举列表中的重复项

时间:2009-09-06 13:53:51

标签: ruby enumerable

在ruby中有一个好方法可以删除可枚举列表中的重复项(即拒绝等)

4 个答案:

答案 0 :(得分:10)

对于数组,您可以使用uniq()方法

a = [ "a", "a", "b", "b", "c" ]
a.uniq   #=> ["a", "b", "c"]

所以,如果你只是

(1..10).to_a.uniq

%w{ant bat cat ant}.to_a.uniq

因为无论如何,您实现的几乎所有方法都将作为Array类返回。

答案 1 :(得分:2)

好的策略是将它们转换为数组并从数组中删除重复项。顺便说一下,无论如何,列表都是ruby中的数组,因此我不确定“enumerable lists”是什么意思

答案 2 :(得分:2)

如果元素顺序不重要,您可以转换为Set。

http://www.ruby-doc.org/core/classes/Set.html

答案 3 :(得分:1)

如果对象没有.uniq方法,我喜欢使用set logic运算符。

a = [2,3,3,5,5,5,6] # => [2, 3, 3, 5, 5, 5, 6] 
a | a # => [2, 3, 5, 6]