Ruby 如何做到理智;“设置差异”;用红宝石?
演示(我期望结果Ruby 如何做到理智;“设置差异”;用红宝石?,ruby,set-difference,Ruby,Set Difference,演示(我期望结果[3]): 无论输入的顺序如何,如何执行实数集差异 顺便说一句,我需要对两个2000元素的数组执行此操作。通常,数组#1的元素比数组#2的元素少,但这不是保证的。应用于两个数组a和b的元素给出b在a中的元素(在a中但不在b中的项目) 您要寻找的是两个集合的集合(这两个集合之间的两个相对互补项的并集)。这将实现以下目的: a = [1, 2, 9] b = [1, 2, 3] a - b | b - a # => [3, 9] 如果在对象上操作,可以使用重
[3]
):
无论输入的顺序如何,如何执行实数集差异
顺便说一句,我需要对两个2000元素的数组执行此操作。通常,数组#1的元素比数组#2的元素少,但这不是保证的。应用于两个数组a
和b
的元素给出b
在a
中的元素(在a
中但不在b
中的项目)
您要寻找的是两个集合的集合(这两个集合之间的两个相对互补项的并集)。这将实现以下目的:
a = [1, 2, 9]
b = [1, 2, 3]
a - b | b - a # => [3, 9]
如果在对象上操作,可以使用重载:
c=Set[1,2,9]
d=设置[1,2,3]
c^d#=>#
为了获得更多乐趣,您还可以在以下两组中找到的相对补充:
( a | b ) - ( a & b ) # => #<Set: {3, 9}>
(a|b)-(a&b)#=>#
+1,回答得很好。我将数组#^添加到我的中,并不总是需要遍历集合。
a = [1, 2, 9]
b = [1, 2, 3]
a - b | b - a # => [3, 9]
c = Set[1, 2, 9]
d = Set[1, 2, 3]
c ^ d # => #<Set: {3, 9}>
( a | b ) - ( a & b ) # => #<Set: {3, 9}>