开发者社区> 问答> 正文

在Go中随机播放数组

我试图将以下Python代码翻译为Go

import random

list = [i for i in range(1, 25)] random.shuffle(list) print(list) 但是发现我的Go版本冗长而笨拙,因为没有shuffle函数,我不得不实现接口和转换类型。

什么是我的代码的惯用Go版本? 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-08 19:58:24 326 0
1 条回答
写回答
取消 提交回答
  • 由于列表只是1到25之间的整数,因此可以使用Perm:

    list := rand.Perm(25) for i, _ := range list { list[i]++ } 请注意,使用由给定的置换rand.Perm是重新排列任何数组的有效方法。

    dest := make([]int, len(src)) perm := rand.Perm(len(src)) for i, v := range perm { dest[v] = src[i] }

    2020-02-08 19:58:37
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Go语言路上踩过的坑 立即下载
gohbase :HBase go客户端 立即下载
Go构建日请求千亿级微服务实践 立即下载