在Ruby中如何做出正确的“设定差别”?
发布时间:2020-12-16 20:00:24 所属栏目:百科 来源:网络整理
导读:演示(我期待结果[3]): [1,2] - [1,2,3] = [] # Hmm[1,3] - [1,2] = [3] # I seea = [1,2].to_set = #Set: {1,2}b = [1,3].to_set = #Set: {1,3}a - b = #Set: {} WTF! 和: [1,9] - [1,3] = [9] # Hmm. Would like [[9],[3]] 无论输入的顺序如何,一个执行真
演示(我期待结果[3]):
[1,2] - [1,2,3] => [] # Hmm [1,3] - [1,2] => [3] # I see a = [1,2].to_set => #<Set: {1,2}> b = [1,3].to_set => #<Set: {1,3}> a - b => #<Set: {}> WTF! 和: [1,9] - [1,3] => [9] # Hmm. Would like [[9],[3]] 无论输入的顺序如何,一个执行真正的设置差异? PS.除此之外,我需要为两个2000元素的数组执行此操作.通常,数组#1将比数组#2具有更少的元素,但不能保证. 解决方法- operator应用于两个阵列a和b给出了a的a001(在b中不是b的项).
你正在寻找的是两套symmetric difference(两者之间的相对补充的联合).这将会诀窍: a = [1,9] b = [1,3] a - b | b - a # => [3,9] 如果您使用 c = Set[1,9] d = Set[1,3] c ^ d # => #<Set: {3,9}> 为了额外的乐趣,您还可以在union的两组中找到intersection的相对补码: ( a | b ) - ( a & b ) # => #<Set: {3,9}> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |