在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 相关文章推荐
Python Web框架Flask中使用新浪SAE云存储实例
Feb 08 Python
Python实现周期性抓取网页内容的方法
Nov 04 Python
python中使用xlrd读excel使用xlwt写excel的实例代码
Jan 31 Python
python实现QQ空间自动点赞功能
Apr 09 Python
python-opencv获取二值图像轮廓及中心点坐标的代码
Aug 27 Python
python实现矩阵和array数组之间的转换
Nov 29 Python
django框架auth模块用法实例详解
Dec 10 Python
Python3标准库glob文件名模式匹配的问题
Mar 13 Python
python 日志模块logging的使用场景及示例
Jan 04 Python
Python 正则模块详情
Nov 02 Python
分享几种python 变量合并方法
Mar 20 Python
Python中time标准库的使用教程
Apr 13 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获取文件类型和文件信息的方法
2015/07/10 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
2016/03/08 PHP
PHP二维数组去重算法
2016/12/17 PHP
JAVASCRIPT下判断IE与FF的比较简单的方式
2008/10/17 Javascript
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
2010/11/28 Javascript
JS使用for循环遍历Table的所有单元格内容
2014/08/21 Javascript
javascript数据结构与算法之检索算法
2015/04/04 Javascript
解决jQuery uploadify在非IE核心浏览器下无法上传
2015/08/05 Javascript
jQuery实现的自适应焦点图效果完整实例
2016/08/24 Javascript
用jQuery.ajaxSetup实现对请求和响应数据的过滤
2016/12/20 Javascript
jQuery鼠标移动图片上实现放大效果
2017/06/25 jQuery
JS简单添加元素新节点的方法示例
2018/02/10 Javascript
layui框架table 数据表格的方法级渲染详解
2018/08/19 Javascript
在vue.js中使用JSZip实现在前端解压文件的方法
2018/09/05 Javascript
python实现迭代法求方程组的根过程解析
2019/11/25 Javascript
JavaScript实现Tab标签页切换的最简便方式(4种)
2020/06/28 Javascript
vue3.0 项目搭建和使用流程
2021/03/04 Vue.js
[36:17]DOTA2上海特级锦标赛 - VGL音乐会全集
2016/03/06 DOTA
Python3 中文文件读写方法
2018/01/23 Python
django传值给模板, 再用JS接收并进行操作的实例
2018/05/28 Python
Python中staticmethod和classmethod的作用与区别
2018/10/11 Python
python将list转为matrix的方法
2018/12/12 Python
python 读取竖线分隔符的文本方法
2018/12/20 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
2019/08/30 Python
你还在@微信官方?聊聊Python生成你想要的微信头像
2019/09/25 Python
python TCP包注入方式
2020/05/05 Python
keras的backend 设置 tensorflow,theano操作
2020/06/30 Python
美国大型的健身社区和补充商店:Bodybuilding.com
2016/09/06 全球购物
转党组织关系介绍信
2014/01/08 职场文书
竞聘上岗演讲稿范文
2014/01/10 职场文书
大学老师推荐信
2014/02/25 职场文书
二年级学生评语大全
2014/04/23 职场文书
2015年人力资源工作总结
2015/04/08 职场文书
读书笔记怎么写
2015/07/01 职场文书
2016优秀青年志愿者事迹材料
2016/02/25 职场文书
python使用pycharm安装pyqt5以及相关配置
2022/04/22 Python