ruby 中是否有一种好方法可以删除可枚举列表中的重复项(即拒绝等)?
问问题
2960 次
4 回答
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 类返回。
于 2009-09-06T15:25:26.727 回答
2
那么策略是将它们转换为数组并从数组中删除重复项。顺便说一下,列表在任何情况下都是 ruby 中的数组,所以我不确定您所说的“可枚举列表”是什么意思
于 2009-09-06T14:00:50.130 回答
2
如果元素顺序不重要,您可以转换为 Set。
于 2009-09-06T14:15:59.333 回答
1
如果对象没有 .uniq 方法,我喜欢使用集合逻辑运算符。
a = [2,3,3,5,5,5,6] # => [2, 3, 3, 5, 5, 5, 6]
a | a # => [2, 3, 5, 6]
于 2012-04-20T04:37:37.197 回答