在python3中使用shuffle函数要注意的地方


Posted in Python onFebruary 28, 2020

1 shuffle函数与其他函数不一样的地方

shuffle函数没有返回值!shuffle函数没有返回值!shuffle函数没有返回值!仅仅是实现了对list元素进行随机排序的一种功能

请看下面的坑

1.1 误认为shuffle函数会有一个返回值的错误例子

num1 = list(range(1,39526)) #产生1-39525的数
num2 = random.shuffle(num1)
num3 = num2[0:30000] #取前30000个行号的元素
num4 = num2[30000:39524] #取到后面9525个元素

执行结果:

File "E:/pythonProj/test2/readDatasetCSVfile.py", line 122, in <module>
 num3 = num2[0:30000] #取前30000个行号的元素
 TypeError: 'NoneType' object is not subscriptable

从这个错误中我们也可以看出来,指明obiect没有类型,其实现在这个num2中是null,什么也没有,因为shuffle没有返回值,所以自然会报这种类型的错误。

1.2 正确使用shuffle函数的例子

num1 = list(range(1,39526)) #产生1-39525的数
random.shuffle(num1) #注意shuffle没有返回值,该函数完成一种功能,就是对list进行排序打乱
num3 = num1[0:30000] #取前30000个行号的元素
num4 = num1[30000:39524] #取到后面9525个元素

这个时候才顺利运行通过!

补充拓展:对python中使用shuffle和permutation对列表进行随机洗牌的区别

函数:shuffle将列表的所有元素随机排序,不生成新的数组返回

示例:

import random

list = [20, 16, 10, 5];
random.shuffle(list) # 参数只能是列表,元组、字典、字符串会报错
print("随机排序列表 : ", list)
random.shuffle(list)
print("随机排序列表 : ", list)

执行结果:

在python3中使用shuffle函数要注意的地方

函数:permutation 返回排列范围的随机列表或返回一个新的打乱顺序的数组,并不改变原来的数组,

如果输入是一个多维数组,则它只沿其第一个索引进行无序排列

示例:

import numpy as np
new_arr = np.random.permutation(10)
print(new_arr)
new_arr1 = np.random.permutation([1, 4, 9, 12, 15]) # 参数为列表
print(new_arr1)
arr = np.arange(9).reshape((3, 3))
new_arr2 = np.random.permutation(arr)
print(new_arr2)
new_arr3 = np.random.permutation([{"a": 1, "b": 2}, [{"e": 5}, {"c": 3}, {"d": 4}], [{"f": 6}, {"g": 8}]])# 子数组中的排列顺序不变
print(new_arr3)
new_arr4 = np.random.permutation((1, 4, 9, 12, 15)) #可以传元组参数
print(new_arr4)
import numpy as np
new_arr = np.random.permutation(10)
print(new_arr)
new_arr1 = np.random.permutation([1, 4, 9, 12, 15])
print(new_arr1)
arr = np.arange(9).reshape((3, 3))
new_arr2 = np.random.permutation(arr)
print(new_arr2)
new_arr3 = np.random.permutation([{"a": 1, "b": 2}, [{"e": 5}, {"c": 3}, {"d": 4}], [{"f": 6}, {"g": 8}]]) # 子数组中的排列顺序不变
print(new_arr3)

执行结果:

在python3中使用shuffle函数要注意的地方

以上这篇在python3中使用shuffle函数要注意的地方就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
pygame学习笔记(2):画点的三种方法和动画实例
Apr 15 Python
教你用python3根据关键词爬取百度百科的内容
Aug 18 Python
scrapy爬虫实例分享
Dec 28 Python
从列表或字典创建Pandas的DataFrame对象的方法
Jul 06 Python
Pandas实现dataframe和np.array的相互转换
Nov 30 Python
python支持多线程的爬虫实例
Dec 21 Python
pytorch torchvision.ImageFolder的用法介绍
Feb 20 Python
python IDLE添加行号显示教程
Apr 25 Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
May 27 Python
Python 获取异常(Exception)信息的几种方法
Dec 29 Python
Python字节单位转换(将字节转换为K M G T)
Mar 02 Python
Python爬虫数据的分类及json数据使用小结
Mar 29 Python
Python对称的二叉树多种思路实现方法
Feb 28 #Python
pycharm如何实现跨目录调用文件
Feb 28 #Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
Feb 28 #Python
python 爬虫 实现增量去重和定时爬取实例
Feb 28 #Python
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
Feb 28 #Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
Feb 27 #Python
Python递归求出列表(包括列表中的子列表)的最大值实例
Feb 27 #Python
You might like
php去掉字符串的最后一个字符附substr()的用法
2011/03/23 PHP
奇怪的PHP引用效率问题分析
2012/03/23 PHP
YII中assets的使用示例
2014/07/31 PHP
100多行PHP代码实现socks5代理服务器[2]
2016/05/05 PHP
php字符串比较函数用法小结(strcmp,strcasecmp,strnatcmp及strnatcasecmp)
2016/07/18 PHP
用JavaScrpt实现文件夹简单轻松加密的实现方法图文
2008/09/08 Javascript
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
JavaScript对象数组如何按指定属性和排序方向进行排序
2016/06/15 Javascript
Nodejs进阶之服务端字符编解码和乱码处理
2017/09/04 NodeJs
详解ES6之async+await 同步/异步方案
2017/09/19 Javascript
angular.js实现购物车功能
2017/10/23 Javascript
浅析Node.js非对称加密方法
2018/01/29 Javascript
防止Layui form表单重复提交的实现方法
2019/09/10 Javascript
微信小程序全局变量GLOBALDATA的定义和调用过程解析
2019/09/23 Javascript
微信小程序云函数添加数据到数据库的方法
2020/03/04 Javascript
vue实现整屏滚动切换
2020/06/29 Javascript
vue 中使用print.js导出pdf操作
2020/11/13 Javascript
[01:20]辉夜杯背景故事宣传片《辉夜传说》
2015/12/25 DOTA
Python中文分词工具之结巴分词用法实例总结【经典案例】
2017/04/15 Python
python正则实现提取电话功能
2018/02/24 Python
python实现隐马尔科夫模型HMM
2018/03/25 Python
python 通过 socket 发送文件的实例代码
2018/08/14 Python
Python玩转加密的技巧【推荐】
2019/05/13 Python
python进程和线程用法知识点总结
2019/05/28 Python
浅析Windows 嵌入python解释器的过程
2019/07/26 Python
python Pandas如何对数据集随机抽样
2019/07/29 Python
python3 简单实现组合设计模式
2020/07/02 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
浅析HTML5:'data-'属性的作用
2018/01/23 HTML / CSS
美国高街时尚品牌:OASAP
2016/07/24 全球购物
FORZIERI福喜利中国官网:奢侈品购物梦工厂
2019/05/03 全球购物
研究生求职推荐信范文
2013/11/30 职场文书
班组长岗位职责范本
2014/01/05 职场文书
工艺员岗位职责
2014/02/11 职场文书
党的群众路线教育实践活动督导组工作情况汇报
2014/10/28 职场文书
音乐之声观后感
2015/06/04 职场文书