在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面向对象编程中的类和对象学习教程
Mar 30 Python
python语言使用技巧分享
May 31 Python
python实现将文件夹下面的不是以py文件结尾的文件都过滤掉的方法
Oct 21 Python
python实现的MySQL增删改查操作实例小结
Dec 19 Python
使用TensorFlow实现二分类的方法示例
Feb 05 Python
pycharm中显示CSS提示的知识点总结
Jul 29 Python
django商品分类及商品数据建模实例详解
Jan 03 Python
浅谈python量化 双均线策略(金叉死叉)
Jun 03 Python
pytorch判断是否cuda 判断变量类型方式
Jun 23 Python
Python自动发送和收取邮件的方法
Aug 12 Python
Django展示可视化图表的多种方式
Apr 08 Python
如何用python反转图片,视频
Apr 24 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
德生PL550的电路分析
2021/03/02 无线电
使用正则去除php代码中的注释方法
2016/11/03 PHP
php加密之discuz内容经典加密方式实例详解
2017/02/04 PHP
PHP session垃圾回收机制实例分析
2019/06/28 PHP
用JTrackBar实现的模拟苹果风格的滚动条
2007/08/06 Javascript
基于jQuery UI CSS Framework开发Widget的经验
2010/08/21 Javascript
基于jquery的下拉框改变动态添加和删除表格实现代码
2020/09/12 Javascript
关于js遍历表格的实例
2013/07/10 Javascript
JavaScript中使用typeof运算符需要注意的几个坑
2014/11/08 Javascript
Bootstrap 轮播(Carousel)插件
2016/12/26 Javascript
解决URL地址中的中文乱码问题的办法
2017/02/10 Javascript
JavaScript实现简单的双色球(实例讲解)
2017/07/31 Javascript
vue二级菜单导航点击选中事件的方法
2018/09/12 Javascript
Vue可自定义tab组件用法实例
2019/10/24 Javascript
JavaScript监听一个DOM元素大小变化
2020/04/26 Javascript
[36:33]Ti4 循环赛第四日 附加赛NEWBEE vs Mouz
2014/07/13 DOTA
[01:37]全新的一集《真视界》——TI7总决赛
2017/09/21 DOTA
Python图像处理之图像的读取、显示与保存操作【测试可用】
2019/01/04 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
2019/05/13 Python
python django框架中使用FastDFS分布式文件系统的安装方法
2019/06/10 Python
对Python函数设计规范详解
2019/07/19 Python
python实现将一维列表转换为多维列表(numpy+reshape)
2019/11/29 Python
Tensorflow不支持AVX2指令集的解决方法
2020/02/03 Python
Python3标准库glob文件名模式匹配的问题
2020/03/13 Python
详解FireFox下Canvas使用图像合成绘制SVG的Bug
2019/07/10 HTML / CSS
雅高酒店中国:Accorhotels.com China
2018/03/26 全球购物
挂牌仪式主持词
2014/03/20 职场文书
诉讼代理人授权委托书
2014/10/11 职场文书
2014年教师学期工作总结
2014/11/08 职场文书
品质保证书格式
2015/02/28 职场文书
劳动仲裁代理词范文
2015/05/25 职场文书
小学语文教师研修日志
2015/11/13 职场文书
《迟到》教学反思
2016/02/24 职场文书
赞美教师的句子
2019/09/02 职场文书
PHP使用非对称加密算法RSA
2021/04/21 PHP
在Oracle表中进行关键词搜索的过程
2022/06/10 Oracle