之前自己一直使用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()的使用方法...相关推荐

  1. 关于python格式对齐的问题_[宜配屋]听图阁 - 浅谈python str.format与制表符\t关于中文对齐的细节问题...

    写了一个练手的爬虫...在输出的时候出现了让人很不愉♂悦的问题 像这样: 令人十分难受啊! #------------------------------------------ 在此之前先说一下py ...

  2. python开发一个彩票系统_[宜配屋]听图阁

    本文为大家分享了python实现彩票系统的具体代码,供大家参考,具体内容如下 功能:1.注册  2.登录  3.充钱   4.提现  5.下注  6.开奖  7.退出 简述:彩民需要用身份证号码开户注 ...

  3. python做excel表格代码_[宜配屋]听图阁

    安装两个库:pip install xlrd.pip install xlwt 1.python读excel--xlrd 2.python写excel--xlwt 1.读excel数据,包括日期等数据 ...

  4. python的pyaudio教程入门_[宜配屋]听图阁

    ​ 0.引子 当需要使用Python处理音频数据时,使用python读取与播放声音必不可少,下面介绍一个好用的处理音频PyAudio工具包. PyAudio是Python开源工具包,由名思义,是提供对 ...

  5. python对数组的基本操作_[宜配屋]听图阁

    这篇文章主要介绍了简单了解python数组的基本操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一,创建列表 创建一个列表,只要把逗号分隔的不同 ...

  6. python连接oracle详细教程_[宜配屋]听图阁

    1. 连接对象 操作数据库之前,首先要建立数据库连接. 有下面几个方法进行连接. >>>import cx_Oracle >>>db = cx_Oracle.con ...

  7. python导出百万数据到excel_[宜配屋]听图阁

    (1) 问题描述:为了更好地展示数据,Excel格式的数据文件往往比文本文件更具有优势,但是具体到python中,该如何导出数据到Excel呢?如果碰到需要导出大量数据又该如何操作呢? 本文主要解决以 ...

  8. python求超级素数代码_[宜配屋]听图阁

    如果一个数字能表示成 p^q,且p是一个素数,q为大于1的正整数,则此数字就是超级素数幂. param number: 测试该数字是否是超级素数幂 return: 如果不是就返回 False,如果是就 ...

  9. python计算圆的体积_[宜配屋]听图阁

    在已知DICOM和三维模型对应掩膜的情况下,计算三维模型的体积. 思路: 1.计算每个体素的体积.每个体素为长方体,x,y为PixelSpacing,z为层间距 使用pydicom.read_file ...

最新文章

  1. 人工智能将会如何影响和服务医疗行业?未来十年会有哪些值得期待的应用?
  2. 微服务架构的优势与不足
  3. asm冗余 oracle_oracle asm 磁盘管理什么场景该用什么样的冗余方式
  4. python里none什么意思_python中stream=None什么意思?
  5. php5.2.10安装_安装 | 起步 | Laravel 5.2 中文文档
  6. 编程之美——2.7 求最大公约数
  7. 删除归档日志_ORA-00257:archiver error.Connect internal only, until freed的问题
  8. 怎样自动提取邮件的内容_这些最新的外贸搜索开发工具(图灵搜、谷歌搜索提取工具、易查查),你会使用吗?...
  9. oVirt guest | VM HOST HA in one Cluster
  10. java 云 代码_我 - java代码库 - 云代码
  11. mysql查找多个表并更新值_Mysql子查询,连接,多表更新
  12. 校园二手交易平台小程序《云开发演示》
  13. Apache Log4j2历史漏洞复现
  14. 华为nova2s云相册在哪里_华为nova2s截频图片在哪个文件夹 | 手游网游页游攻略大全...
  15. 导热系数仪 德国PSL 德国培赛乐 快速阻垢性能测试仪 抗车辙剂 摇摆槽 水合物摇摆槽 水合物相变的固-液-气多相流动 水合物阻聚剂分析 沥青硫化氢分析 沥青絮凝点 沥青絮凝点测定仪 油田注水阻垢剂
  16. Bazel编译教程(基础篇)
  17. R740 U盘启动设置和安装centos7报错处理
  18. 逆向分析并修改Hello World程序《逆向工程核心原理》《软件逆向工程原理与实践》
  19. linux rpm安装包忽视所有依赖强制安装
  20. please tell me who you are?

热门文章

  1. Gsview裁剪EPS文件
  2. python中的zip、map、reduce 、lambda、filter函数的使用
  3. MySQL优化四(优化表结构)
  4. 马化腾,你就把微信卖给运营商得了
  5. 基于MVC模式Struts框架研究
  6. 13-Mybatis 注解开发
  7. java模拟病人就诊过程_new 患者在医院看病过程:先排队等候 联合开发网 - pudn.com...
  8. 怎么输入license_误执行了 rm fr /* 之后,除了跑路还能怎么办?!
  9. ubuntu下载gmt_科学网—Linux/Ubuntu安装地学制图软件GMT6.0.0 - 杨家乐的博文
  10. mysql 触发器 new.id,mysql触发器的使用方法