python中random库中shuffle_[宜配屋]听图阁 - 详解Python中打乱列表顺序random.shuffle()的使用方法...
之前自己一直使用random中 randint生成随机数以及使用for将列表中的数据遍历一次。
现在有个需求需要将列表的次序打乱,或者也可以这样理解:
【需求】将一个容器中的数据每次随机逐个遍历一遍。
random.shuffle()方法提供了完美的解决方案。
不会生成新的列表,只是将原列表的次序打乱
# shuffle()使用样例
import random
x = [i for i in range(10)]
print(x)
random.shuffle(x)
print(x)
源码及注释(个人翻译注释)
def shuffle(self, x, random=None):
"""Shuffle list x in place, and return None.
原位打乱列表,不生成新的列表。
Optional argument random is a 0-argument
function returning a random float in [0.0, 1.0);
if it is the default None,
the standard random.random will be used.
可选参数random是一个从0到参数的函数,返回[0.0,1.0)中的随机浮点;
如果random是缺省值None,则将使用标准的random.random()。
"""
if random is None:
randbelow = self._randbelow
for i in reversed(range(1, len(x))):
# pick an element in x[:i+1] with which to exchange x[i]
j = randbelow(i + 1)
x[i], x[j] = x[j], x[i]
else:
_int = int
for i in reversed(range(1, len(x))):
# pick an element in x[:i+1] with which to exchange x[i]
j = _int(random() * (i + 1))
x[i], x[j] = x[j], x[i]
random 中其他的方法
class Random(_random.Random):
## -------------------- integer methods -------------------
def randrange(self, start, stop=None, step=1, _int=int):
def randint(self, a, b):
def _randbelow(self, n, int=int, maxsize=1 << BPF, type=type,
Method=_MethodType, BuiltinMethod=_BuiltinMethodType):
## -------------------- sequence methods -------------------
def choice(self, seq):
def shuffle(self, x, random=None):
def sample(self, population, k):
def choices(self, population, weights=None, *, cum_weights=None, k=1):
## -------------------- uniform distribution -------------------
def uniform(self, a, b):
## -------------------- triangular --------------------
def triangular(self, low=0.0, high=1.0, mode=None):
## -------------------- normal distribution --------------------
def normalvariate(self, mu, sigma):
## -------------------- lognormal distribution --------------------
def lognormvariate(self, mu, sigma):
## -------------------- exponential distribution --------------------
def expovariate(self, lambd):
## -------------------- von Mises distribution --------------------
def vonmisesvariate(self, mu, kappa):
## -------------------- gamma distribution --------------------
def gammavariate(self, alpha, beta):
## -------------------- Gauss (faster alternative) --------------------
def gauss(self, mu, sigma):
def betavariate(self, alpha, beta):
## -------------------- Pareto --------------------
def paretovariate(self, alpha):
## -------------------- Weibull --------------------
def weibullvariate(self, alpha, beta):
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。
python中random库中shuffle_[宜配屋]听图阁 - 详解Python中打乱列表顺序random.shuffle()的使用方法...相关推荐
- 关于python格式对齐的问题_[宜配屋]听图阁 - 浅谈python str.format与制表符\t关于中文对齐的细节问题...
写了一个练手的爬虫...在输出的时候出现了让人很不愉♂悦的问题 像这样: 令人十分难受啊! #------------------------------------------ 在此之前先说一下py ...
- python开发一个彩票系统_[宜配屋]听图阁
本文为大家分享了python实现彩票系统的具体代码,供大家参考,具体内容如下 功能:1.注册 2.登录 3.充钱 4.提现 5.下注 6.开奖 7.退出 简述:彩民需要用身份证号码开户注 ...
- python做excel表格代码_[宜配屋]听图阁
安装两个库:pip install xlrd.pip install xlwt 1.python读excel--xlrd 2.python写excel--xlwt 1.读excel数据,包括日期等数据 ...
- python的pyaudio教程入门_[宜配屋]听图阁
0.引子 当需要使用Python处理音频数据时,使用python读取与播放声音必不可少,下面介绍一个好用的处理音频PyAudio工具包. PyAudio是Python开源工具包,由名思义,是提供对 ...
- python对数组的基本操作_[宜配屋]听图阁
这篇文章主要介绍了简单了解python数组的基本操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一,创建列表 创建一个列表,只要把逗号分隔的不同 ...
- python连接oracle详细教程_[宜配屋]听图阁
1. 连接对象 操作数据库之前,首先要建立数据库连接. 有下面几个方法进行连接. >>>import cx_Oracle >>>db = cx_Oracle.con ...
- python导出百万数据到excel_[宜配屋]听图阁
(1) 问题描述:为了更好地展示数据,Excel格式的数据文件往往比文本文件更具有优势,但是具体到python中,该如何导出数据到Excel呢?如果碰到需要导出大量数据又该如何操作呢? 本文主要解决以 ...
- python求超级素数代码_[宜配屋]听图阁
如果一个数字能表示成 p^q,且p是一个素数,q为大于1的正整数,则此数字就是超级素数幂. param number: 测试该数字是否是超级素数幂 return: 如果不是就返回 False,如果是就 ...
- python计算圆的体积_[宜配屋]听图阁
在已知DICOM和三维模型对应掩膜的情况下,计算三维模型的体积. 思路: 1.计算每个体素的体积.每个体素为长方体,x,y为PixelSpacing,z为层间距 使用pydicom.read_file ...
最新文章
- 人工智能将会如何影响和服务医疗行业?未来十年会有哪些值得期待的应用?
- 微服务架构的优势与不足
- asm冗余 oracle_oracle asm 磁盘管理什么场景该用什么样的冗余方式
- python里none什么意思_python中stream=None什么意思?
- php5.2.10安装_安装 | 起步 | Laravel 5.2 中文文档
- 编程之美——2.7 求最大公约数
- 删除归档日志_ORA-00257:archiver error.Connect internal only, until freed的问题
- 怎样自动提取邮件的内容_这些最新的外贸搜索开发工具(图灵搜、谷歌搜索提取工具、易查查),你会使用吗?...
- oVirt guest | VM HOST HA in one Cluster
- java 云 代码_我 - java代码库 - 云代码
- mysql查找多个表并更新值_Mysql子查询,连接,多表更新
- 校园二手交易平台小程序《云开发演示》
- Apache Log4j2历史漏洞复现
- 华为nova2s云相册在哪里_华为nova2s截频图片在哪个文件夹 | 手游网游页游攻略大全...
- 导热系数仪 德国PSL 德国培赛乐 快速阻垢性能测试仪 抗车辙剂 摇摆槽 水合物摇摆槽 水合物相变的固-液-气多相流动 水合物阻聚剂分析 沥青硫化氢分析 沥青絮凝点 沥青絮凝点测定仪 油田注水阻垢剂
- Bazel编译教程(基础篇)
- R740 U盘启动设置和安装centos7报错处理
- 逆向分析并修改Hello World程序《逆向工程核心原理》《软件逆向工程原理与实践》
- linux rpm安装包忽视所有依赖强制安装
- please tell me who you are?
热门文章
- Gsview裁剪EPS文件
- python中的zip、map、reduce 、lambda、filter函数的使用
- MySQL优化四(优化表结构)
- 马化腾,你就把微信卖给运营商得了
- 基于MVC模式Struts框架研究
- 13-Mybatis 注解开发
- java模拟病人就诊过程_new 患者在医院看病过程:先排队等候 联合开发网 - pudn.com...
- 怎么输入license_误执行了 rm fr /* 之后,除了跑路还能怎么办?!
- ubuntu下载gmt_科学网—Linux/Ubuntu安装地学制图软件GMT6.0.0 - 杨家乐的博文
- mysql 触发器 new.id,mysql触发器的使用方法