2017-03-23 11:45

# 如何在Go中尽可能均匀地随机分割地图？

I have a quick question. I am fairly new to golang. Say I have a map like so:

``````map[int]string
``````

How could I randomly split it into two maps or arrays and as close to even as possible? So for example, if there are 15 items, it would be split 7 - 8.

#### 图片转代码服务由CSDN问答提供 功能建议

``` ``` map [int] string

我该如何随机分割地图 分成两个映射或数组，并尽可能接近？ 例如，如果有15个项目，则将其拆分为7-8。
``````
` `
``` 点赞 写回答 关注问题 收藏 分享 邀请回答 ```
``` 2条回答 默认 最新 doujiazong0322 2017-03-23 12:47 已采纳 For example: func split(m map[int]string) (odds map[int]string, evens map[int]string) { n := 1 odds = make(map[int]string) evens = make(map[int]string) for key, value := range m { if n % 2 == 0 { evens[key] = value } else { odds[key] = value } n++ } return odds, evens } It is actually an interesting example, because it shows a few aspects of Go that are not obvious for beginners: range m iterates in a random order, unlike in any other language as far as I know, the modulo operator % returns the remainder of the integer division, a function can return several values. 点赞 评论 分享 dseomy1964 2017-03-23 12:54 You could do something like this: myStrings := make(map[int]string) // Values are added to myStrings myStrings2 := make(map[int]string) // Seed system time for random numbers rand.Seed(time.Now().UTC().UnixNano()) for k, v := range myStrings { if rand.Float32() < 0.5 { myStrings2[k] = v delete(myStrings, k) } } https://play.golang.org/p/6OnH1k4FMu 点赞 评论 分享 报告相同问题？ 提交 关注问题 相关推荐 更多相似问题 如何在Go中尽可能均匀地随机分割地图？ 2017-03-23 11:45 回答 2 已采纳 For example: func split(m map[int]string) (odds map[int]string, evens map[int]string) { n := 如何在Go中生成随机uint64？ 2016-09-28 19:31 回答 3 已采纳 The easiest would be to call rand.Uint32() twice: func Uint64() uint64 { return uint64(rand.U 如何在Golang中随机播放数组中的字符串？ 2017-05-17 13:50 回答 3 已采纳 Well, literally for your problem why not use rand.Intn() to choose a random number and print the g sim9000a sim_sim2real在机器人操纵中 2020-08-27 13:25 weixin_26750481的博客 sim9000a simThis article contains details on sim2real in robotic manipulation for following tasks: 本文包含有关用于以下任务的机器人操纵中sim2real的详细信息： Perception for manipulation (DOPE / SD-... Kafka 基础面试知识都在这，你都知道嘛？ 2019-08-19 08:19 Hadoop技术博文的博客 这种方式在一定程度上降低了数据丢失的可能性，但仍无法保证数据一定不会丢失。因为没有等待follower副本同步完成。 acks=-1: Leader副本和所有的ISR列表中的副本都完成数据存储时才会向生产者发送确认消息。为了... Go的研习笔记-day12（以Java的视角学习Go） 2019-08-14 18:52 小诚信驿站的博客 作为一门 21 世纪的语言，Go 原生支持应用之间的通信（网络，客户端和服务端，分布式计算）和程序的并发。程序可以在不同的处理器和计算机上同时执行不同的代码段。Go 语言为构建并发程序的基本代码块是 协程 ... 如何在Go中生成固定长度的随机字符串？ 2014-04-06 09:22 回答 10 已采纳 Paul's solution provides a simple, general solution. The question asks for the "the fastest and s 在Golang中生成固定长度的随机十六进制字符串的有效方法？ 2017-10-24 07:26 回答 3 已采纳 Actually the code you posted runs, as even though there's a mistake in it (see below), it still do 是否有可能在Golang中返回Integer或Float的函数？ 2019-05-02 19:54 回答 3 已采纳 Yes, it is possible. You just have to return it as a float: func doStuff(flag bool) float32 { 图像分割和目标检测_如何进行图像分割和对象检测的数据探索，我必须学习 2020-09-28 20:29 weixin_26750481的博客 图像分割和目标检测This article was originally written by Jakub Cieślik posted on the Neptune blog. 本文最初由 JakubCieślik 撰写， 发布在 Neptune博客上 。 I’ve been working with object detection ... go设置后端启动_Go 并发、并行和协程 2020-11-11 12:50 weixin_39888180的博客 1.1 什么是协程一个应用程序是运行在机器上的一个进程；进程是一个运行在自己内存地址空间里的独立执行体。一个进程由一个或多个操作系统线程组成，这些线程其实是共享同一个内存地址空间的一起工作的执行体。几乎... 第61篇 笔记-Go 基础 2021-03-22 11:27 wonderBlock的博客 一、go原则 （1）Go 致力于使事情变得简单，用更少的代码行执行更多操作。 （2）并发是首选，函数可作为轻量线程运行。 （3）编译和执行速度快，目标是与 C 一样快。 （4）Go 要求强制转换是显式的，否则会引发... 如何在GO中访问地图值？ 2015-12-13 16:21 回答 1 已采纳 Go is very strict on types. Your maps all have keys with typ int32 and you are trying to access th 可以在地图文字中代替Go中的类型名称使用什么？ 2017-11-30 17:13 回答 2 已采纳 As mentioned by commenter @TimCooper, if Vertex were an interface type then you would need to expl 如何在Golang中检查地图是否为空？ 2016-01-26 00:51 回答 1 已采纳 You can use len: if len(map) == 0 { .... } From https://golang.org/ref/spec#Length_and_capa go知识点汇总 2021-08-03 16:53 huha666的博客 map是一种无序的基于key-value 的数据结构，go语言中的map是引用类型，必须初始化才能使用 go语言 map 的定义语法如下： map[KeyType]ValueType 其中，KeyType表示键的类型；ValueType表示键对应的值的类型 map... nlp文本表征模型_python中的nlp第4部分监督文本分类模型简介 2020-09-07 01:54 weixin_26704853的博客 目标均匀分布在训练和测试数据集中。 If you are slightly confused about this section on data partitioning, you may want to check this awesome article to learn more. 如果您对本部分中的数据分区感到有些... Go协程 2020-12-24 14:25 Chasel_H的博客 本文仅是自己阅读笔记，不正确之处请多包涵和纠正。 原文The way to go 一、什么是协程？ 1、进程和多线程 ...因为在一个进程里的多个线程是共享内存的，意味着在多线程应用中内存中的数据是被多个 在Go中生成随机时间戳 2016-12-03 04:29 回答 1 已采纳 Don't use time.Parse. You have a Unix time, not a time string. Use the Unix() method instead. http 某Java大佬在地表最强Java企业（阿里）面试总结 2020-08-23 19:48 发呆哥o_o ....的博客 面试题真的是博大精深，也通过这个面试题学到了很多...Hashtable 中的方法是Synchronize的，而HashMap中的方法在缺省情况下是非Synchronize的。 HashMap把Hashtable的contains方法去掉了，改成containsValue和contains. 没有解决我的问题, 去提问```
``` 点击登录 提问题 ◇ 欢迎建议意见 ◇ 回答问题能得到什么 ◇ 如何写高质量的提问和回答 ◇ 问答平台结题规则说明 加急问题 ¥300 一套会议室预约管理系统，有这方面经验的，对接下 ¥200 需求软件：图片批处理软件 ¥102 安卓或者苹果手机app换图标 ¥100 python program 要求如下 ¥90 vscode安装extension pack for java插件后报错 ¥60 R语言中使用TensorFlow构建一个用于图像分类的卷积神经网络，TF版本问题困扰许久 ¥50 咨询关于通达信沙盘模拟次日涨停显示效果 ¥50 vue使用el-image加载本地图片失败 ¥50 m3u8本地可以正常播放,网页引入video.js个别m3u8无法播放 ¥50 利用matlab中的ode45解一个线性方程问题，在第四阶频率是出现了这种图，不明白为什么会这样？ ```
``` ```
``` window.csdn.sideToolbar = { options: { afterFinished: function () { setTimeout(function () { var helphtml = '<a class="option-box" data-type="help" href="https://ask.csdn.net/questions/7441224" target="_blank">'+'<img src="https://g.csdnimg.cn/side-toolbar/2.5/images/bangzhucopy.png" alt="" srcset="">'+ '<span class="show-txt">帮助</span></a>'; \$('.csdn-side-toolbar > a:last').before(helphtml); }, 300); }, contentEl: document.getElementsByClassName('floor')[0] } } ```