删除重复是否有红宝石的好方法,以消除在枚举列表复制(即拒绝等)红宝石枚举列表
红宝石枚举列表
回答
对于数组,你可以使用的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..10).to_a.uniq'永远不会是任何东西,而是浪费打字,因为根据定义,范围不能有重复的元素。 (或者有什么我很困惑的?) – Telemachus 2009-09-06 19:13:34
你是对的,它永远不会重复。只是给一个想法。我添加了另一个样本,谢谢。 – Jirapong 2009-09-07 00:27:08
从技术角度来说,一个范围(Fixnums以外的其他范围)可以产生重复的元素 - 它只需要一个对象x,x.succ == x。例如,表示斐波纳契数字的类将具有数字1的这个属性。我不确定为什么你会那样做 - 很可能这是一个疯狂的迹象 - 但它是*可能*。 – Chuck 2009-09-07 00:43:30
嘛策略是将它们转换为数组或从数组删除重复。顺便说一句,列表是ruby中的数组,所以我不确定你的意思是“可枚举列表”。
我也被“enumerable list”弄糊涂了。如果它是一个数组,那么它非常简单。如果它是Enumerator类,那么它需要更多的思考。 – peterpengnz 2012-12-03 21:10:42
如果元素顺序不重要,可以转换为Set。
我喜欢使用集合逻辑运算符,如果对象没有.uniq方法。
a = [2,3,3,5,5,5,6] # => [2, 3, 3, 5, 5, 5, 6]
a | a # => [2, 3, 5, 6]
- 1. 红宝石“枚举”比较
- 2. 红宝石:枚举链
- 3. 红宝石枚举“单”的方法
- 4. 红宝石散列在红宝石
- 5. 红宝石 - 列表零下
- 6. 红宝石列表实现?
- 7. 检查另一个对象的红宝石枚举
- 8. 红宝石:实现函数返回一个枚举
- 9. 红宝石:NoMethodError:未定义的方法`[]”为#<枚举:0x007f8683922870>
- 10. 为什么要使用枚举红宝石
- 11. 红宝石阵列
- 12. 红宝石轨道,自举链接
- 13. 宝石安装红宝石
- 14. 调试宝石红宝石
- 15. Twitter的红宝石宝石
- 16. 红宝石宝石 - LoadError
- 17. 错误红宝石宝石
- 18. 卸载红宝石宝石
- 19. 红宝石宝石文档
- 20. 红宝石:邮件列表库或宝石
- 21. 表列名数组中的红宝石
- 22. 红宝石:反向,变异列表
- 23. 红宝石列表,经由WinRM的
- 24. 红宝石正则表达式 - 阵列
- 25. 红宝石代替数组列表
- 26. 新的Hash内列表 - 红宝石
- 27. 红宝石 - 阵列弄平
- 28. 合并红宝石阵列
- 29. 红宝石嵌套阵列
- 30. 两个红宝石阵列
你可以指定你想记住哪种列表(1)*不是*数组,但(2)可能有重复?范围不能有重复。 – Telemachus 2009-09-06 19:17:26
“enumerable lists”非常不清楚。它是一个Enumerator类的实例变量吗? – peterpengnz 2012-12-03 21:12:36