前端之家收集整理的这篇文章主要介绍了
golang set集合去重以及交叉并集计算,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
golang set集合去重以及交叉并集计算
转自:http://xiaorui.cc/?p=2944
我这边有个场景是针对数据去重,但又不是简单的去重,是有时间区间范围内的交集、并集计算。
废话不多说,我估计有不少人记不清集合的并集、差集、交集的概念了。
集合的分类:
并集:以属于A或属于B的元素为元素的集合成为A与B的并(集)
交集: 以属于A且属于B的元素为元素的集合成为A与B的交(集)
差集:以属于A而不属于B的元素为元素的集合成为A与B的差 (集)
如果只是去重的化,完全可以使用golang map实现。比如下面的例子就可以实现去重。
|
m
:
=
map
[
string
]
int
{
"baidu.com"
:
0
,
"apple.com"
Crayon-o" style="Box-sizing: border-Box; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: rgb(133,
"google.com"
Crayon-cn" style="Box-sizing: border-Box; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important; color: rgb(42,
Crayon-line Crayon-striped-line" id=" Crayon-58cf632241ab3378105953-6" style=" Box-sizing: border- Box; font-family: inherit; border-style: initial; border-image: initial; padding: 0px 5px; margin: 0px; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204,
}
|
和我们预料的一样,必须出错 !
|
# command-line-arguments
.
/
s
.
go
:
13
:
duplicate
key
"google.com"
in
map
literal
exit
status
2
|
golang-set是我在github找到的一个库,其实也没得选…. go get 安装go库包时候因为参数不对,总是失败….
Python
下面是go set的使用实例.
Python