在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 相关文章推荐
windows下python模拟鼠标点击和键盘输示例
Feb 28 Python
使用python开发vim插件及心得分享
Nov 04 Python
K-means聚类算法介绍与利用python实现的代码示例
Nov 13 Python
Python绘制的二项分布概率图示例
Aug 22 Python
python按照多个条件排序的方法
Feb 08 Python
python使用SQLAlchemy操作MySQL
Jan 02 Python
使用keras内置的模型进行图片预测实例
Jun 17 Python
Windows下Sqlmap环境安装教程详解
Aug 04 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
Sep 28 Python
Django项目创建及管理实现流程详解
Oct 13 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
Dec 08 Python
Python自动化之批量处理工作簿和工作表
Jun 03 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
Codeigniter整合Tank Auth权限类库详解
2014/06/12 PHP
PHP中上传多个文件的表单设计例子
2014/11/19 PHP
YII框架中使用memcache的方法详解
2017/08/02 PHP
php使用socket调用http和smtp协议实例小结
2019/07/26 PHP
IE 当eval遇上function的处理
2011/08/09 Javascript
UI Events 用户界面事件
2012/06/27 Javascript
Javascript异步编程的4种方法让你写出更出色的程序
2013/01/17 Javascript
利用JS判断用户是否上网(连接网络)
2013/12/23 Javascript
js中同步与异步处理的方法和区别总结
2013/12/25 Javascript
JavaScript函数的4种调用方法详解
2014/04/22 Javascript
jQuery中ajax和post处理json的不同示例对比
2014/11/02 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
2015/07/17 Javascript
jQuery的remove()方法使用详解
2015/08/11 Javascript
JS实现自动定时切换的简洁网页选项卡效果
2015/10/13 Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
2016/01/14 Javascript
正则表达式(语法篇推荐)
2016/06/24 Javascript
JS实现获取word文档内容并输出显示到html页面示例
2018/06/23 Javascript
Vue CLI3 开启gzip压缩文件的方式
2018/09/30 Javascript
jQuery实现经典的网页3D轮播图封装功能【附源码下载】
2019/02/15 jQuery
Vue 幸运大转盘实现思路详解
2019/05/06 Javascript
Python实现桶排序与快速排序算法结合应用示例
2017/11/22 Python
Python单元测试简单示例
2018/07/03 Python
python实现二维数组的对角线遍历
2019/03/02 Python
创建Django项目图文实例详解
2019/06/06 Python
详解pandas中MultiIndex和对象实际索引不一致问题
2019/07/23 Python
TensorFlow实现自定义Op方式
2020/02/04 Python
python如何使用腾讯云发送短信
2020/09/17 Python
吉力贝官方网站:Jelly Belly
2019/03/11 全球购物
农村改厕实施方案
2014/03/22 职场文书
2015年项目工作总结
2015/04/29 职场文书
亮剑观后感300字
2015/06/05 职场文书
2016幼儿园新学期寄语
2015/12/03 职场文书
详解Html5项目适配系统深色模式方案总结
2021/04/14 HTML / CSS
详解使用 CSS prefers-* 规范提升网站的可访问性与健壮性
2021/05/25 HTML / CSS
Html5同时支持多端sdk的小技巧
2021/11/17 HTML / CSS
SQL Server使用PIVOT与unPIVOT实现行列转换
2022/05/25 SQL Server