Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么random.shuffle比使用排序函数要慢得多?

为什么random.shuffle比使用排序函数要慢得多?
EN

Stack Overflow用户
提问于 2020-11-28 01:28:46
回答 1查看 201关注 0票数 5

在使用pythons的random.shuffle函数时,我注意到使用sorted(l, key=lambda _: random.random())比使用random.shuffle(l)要快得多。据我所知,这两种方法都会产生完全随机的列表,那么为什么shuffle需要这么长的时间呢?

以下是使用timeit模块的次数。

代码语言:javascript
运行
AI代码解释
复制
from timeit import timeit
setup = 'import random\nl = list(range(1000))'

# 5.542 seconds
print(timeit('random.shuffle(l)', setup=setup, number=10000))

# 1.878 seconds
print(timeit('sorted(l, key=lambda _: random.random())', setup=setup, number=10000))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-28 01:33:40

在CPython (参考解释器)上,random.shuffle是用Python语言实现的(并且是用_randbelow实现的,它本身就是一个围绕getrandbits的Python包装器,它是最终实现它的C级函数,为了确保输出是无偏的,它最终被调用的频率几乎是严格要求的两倍);sorted (和random.random)是用C语言实现的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65045565

复制
相关文章
27. R 数据整理(二:将文本数据转换为数据框或列表)
最近遇到一个问题,需要读取MsigDB/h.all.v7.2.symbols.gmt 文件进行分析:
北野茶缸子
2021/12/17
3.3K0
27. R 数据整理(二:将文本数据转换为数据框或列表)
基因集合的数据框,列表和对象形式
这些都离不开生物学功能数据库,但是数据库不仅仅是GO/KEGG哦,目前最齐全的应该是属于 MSigDB(Molecular Signatures Database)数据库中定义了已知的基因集合:http://software.broadinstitute.org/gsea/msigdb 包括H和C1-C7八个系列(Collection),每个系列分别是:
生信技能树
2022/12/16
1.6K0
基因集合的数据框,列表和对象形式
jQuery将form列表转JSON
一、form表单序列化后的格式 image.png 二、JS 函数 function filedSelectJson(){ var a = {}; var reserveVenueCons = $("#orderForm").serializeArray(); var numreg = /\[[0-9]*\]\./;//正则表达式 var index = 0; var attnum = 5;//list对象中有几个属性,这里有5个:reserveField.id,
week
2018/08/27
3.7K0
jQuery将form列表转JSON
Python将字符串转换为列表
We can convert a string to list in Python using split() function.
全栈程序员站长
2022/09/06
6.1K0
将tensor转换为图像_tensor转int
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/07
11.6K0
jackson将json转换为json对象
高久峰
2023/07/02
3880
将JavaBean对象转换为Map集合
使用jackson-databind可以将JavaBean对象属性转换为Map集合。
编程随笔
2022/04/29
1.8K0
SpringBoot使用EasyExcel将Excel数据直接转换为类对象
相比于读取excel到List<List<String>>对象中,抽象一个方法将excel数据直接一步读取到指定的类对象中,更为方便。
翎野君
2023/05/26
2.6K0
java将字符串转换为json对象的方法_java jsonobject转string
在与服务器交互的时候,我们往往会使用json字符串,今天的例子是java对象转化为字符串,
全栈程序员站长
2022/11/08
21.4K0
Java将列表转换为数组,反之亦然
在本文中, 我们将快速学习如何将Java List (例如ArrayList )转换为数组,反之亦然。 如果您希望总体上了解有关ArrayList的更多信息,请随时阅读我们有关Java ArrayLists的文章。
用户7886150
2021/04/28
3.4K0
Python将两个列表转换为字典
最开始,我是想用2层for循环实现,但是发现太麻烦了。最简单的方法,使用zip()函数即可。
py3study
2020/08/26
5.1K0
数据框、矩阵和列表20230202
2、read.csv(" ") ⚠️文件在当前的工作路径中可以直接使用文件名,否则需要使用绝对路径,否则就会报错。
顾卿岚
2023/02/03
1.4K0
将域名从Godaddy转Namesilo
Godaddy,国人称之为狗大爹,世界最大的域名注册商,中国好多个人站长的域名均在此注册。可如今,高昂的费用已经让多少的个人站长和米农伤心欲绝。曾经的曾经已经过去了,今天,我要告诉大家,有一个比狗大爹更优秀的注册商出现了,它就是Namesilo! 本来也一直在找狗大爹的优惠码,但是看了看优惠之后的价格还是比以前的贵或者比其他注册商的贵,虽然我的域名已经续费了好久,但是看到狗大爹的续费政策依然让我心里不爽,于是就有了把域名转出去的想法。最开始考虑的是name.com,其次是domain.com,发现都差不
行 者
2018/03/21
5.3K0
将域名从Godaddy转Namesilo
Java通过Jackson将任意对象转换为HashMap
最近和西瓜支付对接项目,由于西瓜支付SDK中需要对请求参数生成签名,但是SDK依赖Fastjson,我们的项目中禁止使用Fastjson,于是进行替换下,以下是原始的代码,通过FastJson将请求参数转换为Json再转换为HashMap:
高久峰
2023/09/04
1K0
【已解决】将LinkedHashMap转换为需要的对象
通过这样转换之后,list类型转换为我需要的数据类型,然后可以进行接下来的工作,方法在Jackson的ObjectMapper包中。
凯哥Java
2022/12/16
4.2K0
【已解决】将LinkedHashMap转换为需要的对象
java map 转string_java-将Map <String,Object>转换为Map <String,String>
Map map = new HashMap(); //Object is containing String
全栈程序员站长
2022/08/25
12.4K0
使用 Jackson – 将字符串转换为 JsonNode 对象
本快速指南的主要目的是如何使用 Jackson 2 来将一个字符串转换为 JsonNode 对象。
HoneyMoose
2021/09/08
9.9K0
使用 Jackson – 将字符串转换为 JsonNode 对象
获取View的截图-将View转换为Bitmap对象
本文讲述如何通过将View转换为Bitmap对象来获取View的截图,可以用于动画流程的目的。通过调用`ViewToBitmapUtil.convertViewToBitmap()`方法,可以将View转换为Bitmap对象。该方法有两种形式,一种是传入完整的View,一种是传入View的绘制区域,可以用于截取View的一部分。
用户1155943
2018/01/04
1.8K0
java对象转换为json字符串_复杂json字符串转对象
在学习如何编写基于Java的软件时,开发人员遇到的第一个障碍就是如何将其代码与其他软件连接。 这通常是JSON的来源。虽然您可能是Java向导,但JSON是另一种动物。 无论如何,这篇博客文章解释了完成工作所需的一切。
全栈程序员站长
2022/09/30
9K0
java对象转换为json字符串_复杂json字符串转对象
点击加载更多

相似问题

将igraph.vs转换为数据帧

22

将数据框列转换为对象列表

19

将(转置)数据列表转换为列

30

将列表转换为数据框

17

将数据框转换为列表

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文