作者:绿色风
分类:
时间:2022-08-17
浏览:137
楼主 amulee |
Q:如何利用字典编写求两个数组的交集、并集和差集的函数? A:参考以下代码: 1、求交集- Function JiaoJi(ByVal Arr1, ByVal Arr2) '½»¼¯
- Dim d, d1, Temp
- Set d = CreateObject("Scripting.Dictionary")
- Set d1 = CreateObject("Scripting.Dictionary")
- For Each Temp In Arr1
- d1(Temp) = 1
- Next
- For Each Temp In Arr2
- If d1.exists(Temp) Then d(Temp) = 1
- Next
- JiaoJi = d.keys
- End Function
2、求并集- Function BingJi(ByVal Arr1, ByVal Arr2) '²¢¼¯
- Dim d, Temp
- Set d = CreateObject("Scripting.Dictionary")
- For Each Temp In Arr1
- d(Temp) = 1
- Next
- For Each Temp In Arr2
- d(Temp) = 1
- Next
- BingJi = d.keys
- End Function
3、求差集。所谓Arr1和Arr2差集,就是属于Arr1却不属于Arr2的数据集合:- Function ChaJi(ByVal Arr1, ByVal Arr2) 'Arr1与Arr2差集。属于Arr1却不属于Arr2的集合
- Dim d, d1, Temp
- Set d = CreateObject("Scripting.Dictionary")
- Set d1 = CreateObject("Scripting.Dictionary")
- For Each Temp In Arr2
- d1(Temp) = 1
- Next
- For Each Temp In Arr1
- If Not d1.exists(Temp) Then d(Temp) = 1
- Next
- ChaJi = d.keys
- End Function
利用字典来求两个数组的交集、并集和差集.rar |
2楼 liuguansky |
都可以用REMOVE方法的吧。
 比如交集:
- Function JiaoJi(ByVal Arr1, ByVal Arr2) '½»¼¯
- Dim d, d1, Temp
- Set d1 = CreateObject("Scripting.Dictionary")
- For Each Temp In Arr1
- d1(Temp) = 1
- Next
- For Each Temp In Arr2
- If not d1.exists(Temp) Then d1.remove temp
- Next
- JiaoJi = d1.keys
- End Function
|
3楼 goshin01 |
xue xi aaaaaaaa |
4楼 我的1314 |
謝謝提供學習下載中 |
5楼 qq270850428 |
老师,如果我要想找5个数组间的相互关系呢,也就是他们的交集,并集,差集。 我现在的问题是想找到这个5个数组间全部数据去掉重复项的数据,这如何实现呢,是不是可以用字典来编写呢 |
6楼 only0u |
学到一手,非常好! |
7楼 顽童 |
Remove好,少定义个字典 |
8楼 jm9999 |
非常好! |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一