golang大数据量切片去重方法

作者:Davidszhou   来源:SEO优化博客   时间:2020-05-23 23:39:28   点击:

 golang大数据量切片去重方法

 
最近在计算一批数据余弦相似([golang余弦相似度]利用余弦模型计算两关键词相似度|http://www.zongk.com/zongk/135.html),之前一直在使用百度出来的去重方法,数据量较小时还行,数据量较多时发现时间非常慢。
百度出来的去重方法:
func Quchong(mylist []string) ([]string){
newlist := make([]string,0)
//tempmap := make(map[string]int)
for k,v := range mylist{
Isok := false
for i := k+1 ; i < len(mylist); i ++{
if v == mylist[i]{
Isok = true
break
}
}
if (Isok == false){
newlist = append(newlist,v)
}
}
 
return newlist
}

 
两次for循环费时间,golang里面有map集合数据结构,他和python的字典很类似,键值都是唯一的,利用这个点,加个map速度快很多,新的数据去重方法:
 
//新去重方法
func New_quchong(mylist []string)([]string){
temp_map := make(map[string][]int)
res_list := make([]string,0)
for k,v := range mylist{
temp_map[v] = append(temp_map[v],k)
//fmt.Println(v,k)
}
for k,_ := range temp_map{
res_list = append(res_list,k)
}
return res_list
}
 

TAGS:golang , 大数据 , 切片 , 去重

来自Davids zhou博客原创文章请尊重作者:http://www.zongk.com/zongk/136.html转载请标注此链接

网站统计
文章总数:136
今天发布:1
软件资源数:19