在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 相关文章推荐
Python3.x和Python2.x的区别介绍
Feb 12 Python
Python中的jquery PyQuery库使用小结
May 13 Python
Python将xml和xsl转换为html的方法
Mar 10 Python
pyqt5实现俄罗斯方块游戏
Jan 11 Python
python协程之动态添加任务的方法
Feb 19 Python
选择python进行数据分析的理由和优势
Jun 25 Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
Nov 19 Python
Pytorch.nn.conv2d 过程验证方式(单,多通道卷积过程)
Jan 03 Python
jupyter notebook 参数传递给shell命令行实例
Apr 10 Python
python的数学算法函数及公式用法
Nov 18 Python
python 详解turtle画爱心代码
Feb 15 Python
Python&Matlab实现灰狼优化算法的示例代码
Mar 21 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中的观察者模式
2010/03/24 PHP
ThinkPHP中关联查询实例
2014/12/02 PHP
php页面缓存方法小结
2015/01/10 PHP
Cygwin中安装PHP方法步骤
2015/07/04 PHP
PHP仿微信多图片预览上传实例代码
2016/09/13 PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
2019/10/10 PHP
javascript中的parseInt和parseFloat区别
2013/07/12 Javascript
jquery操作select大全
2014/04/25 Javascript
js数组去重的方法汇总
2015/07/29 Javascript
js实现兼容性好的微软官网导航下拉菜单效果
2015/09/07 Javascript
jQuery获取cookie值及删除cookie用法实例
2016/04/15 Javascript
js基于cookie方式记住返回页面用法示例
2016/05/27 Javascript
对js eval()函数的一些见解
2016/08/15 Javascript
vue.js入门教程之计算属性
2016/09/01 Javascript
学好js,这些js函数概念一定要知道【推荐】
2017/01/19 Javascript
nodejs中art-template模板语法的引入及冲突解决方案
2017/11/07 NodeJs
JavaScript获取用户所在城市及地理位置
2018/04/21 Javascript
vue微信分享出来的链接点开是首页问题的解决方法
2018/11/28 Javascript
详解可以用在VS Code中的正则表达式小技巧
2019/05/14 Javascript
在微信小程序中使用mqtt服务的方法
2019/12/13 Javascript
Python切片知识解析
2016/03/06 Python
深入解析Python中函数的参数与作用域
2016/03/20 Python
pandas dataframe添加表格框线输出的方法
2019/02/08 Python
Python内置random模块生成随机数的方法
2019/05/31 Python
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
2019/09/11 Python
Python 依赖库太多了该如何管理
2019/11/08 Python
Python3如何对urllib和urllib2进行重构
2019/11/25 Python
TFRecord格式存储数据与队列读取实例
2020/01/21 Python
python获取百度热榜链接的实例方法
2020/08/25 Python
英国户外装备和冒险服装零售商:alloutdoor
2018/01/30 全球购物
苏格兰在线威士忌商店:The Whisky Barrel
2019/05/07 全球购物
公司财务流程之主管工作流程
2014/03/03 职场文书
学校办公室主任岗位职责
2015/04/01 职场文书
2015中秋节晚会主持词
2015/07/01 职场文书
2015年初中教师个人工作总结
2015/07/21 职场文书
Python移位密码、仿射变换解密实例代码
2021/06/27 Python