在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中的random()方法的使用介绍
May 15 Python
基于使用paramiko执行远程linux主机命令(详解)
Oct 16 Python
Python自定义函数定义,参数,调用代码解析
Dec 27 Python
Python编程pygame模块实现移动的小车示例代码
Jan 03 Python
Python基于高斯消元法计算线性方程组示例
Jan 17 Python
python中aioysql(异步操作MySQL)的方法
Apr 11 Python
Python生成rsa密钥对操作示例
Apr 26 Python
Pandas删除数据的几种情况(小结)
Jun 21 Python
python 实现单通道转3通道
Dec 03 Python
Selenium 滚动页面至元素可见的方法
Mar 18 Python
python中urllib.request和requests的使用及区别详解
May 05 Python
判断Python中的Nonetype类型
May 25 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
ajax+php打造进度条代码[readyState各状态说明]
2010/04/12 PHP
php UTF-8、Unicode和BOM问题
2010/05/18 PHP
采集邮箱的php代码(抓取网页中的邮箱地址)
2012/07/17 PHP
thinkphp路由规则使用示例详解和伪静态功能实现(apache重写)
2014/02/24 PHP
php数据库备份还原类分享
2014/03/20 PHP
php数组查找函数总结
2014/11/18 PHP
php递归遍历删除文件的方法
2015/04/17 PHP
php 读取输出其他文件的实现方法
2016/07/26 PHP
PHP preg_match实现正则表达式匹配功能【输出是否匹配及匹配值】
2017/07/19 PHP
thinkPHP5框架自定义验证器实现方法分析
2018/06/11 PHP
PHP registerXPathNamespace()函数讲解
2019/02/03 PHP
nodejs中实现路由功能
2014/12/29 NodeJs
jQuery插件bxSlider实现响应式焦点图
2015/04/12 Javascript
javascript组合使用构造函数模式和原型模式实例
2015/06/04 Javascript
浅谈jquery设置和获得checkbox选中的问题
2016/08/19 Javascript
AngularJS递归指令实现Tree View效果示例
2016/11/07 Javascript
JS奇技之利用scroll来监听resize详解
2017/06/15 Javascript
浅谈vue的props,data,computed变化对组件更新的影响
2018/01/16 Javascript
js获取html页面代码中图片地址的实现代码
2018/03/05 Javascript
浅析Proxy可以优化vue的数据监听机制问题及实现思路
2018/11/29 Javascript
vuex 解决报错this.$store.commit is not a function的方法
2018/12/17 Javascript
VUE实现强制渲染,强制更新
2019/10/29 Javascript
vue 实现根据data中的属性值来设置不同的样式
2020/08/04 Javascript
python中的多重继承实例讲解
2014/09/28 Python
用Python中的__slots__缓存资源以节省内存开销的方法
2015/04/02 Python
Python实现将不规范的英文名字首字母大写
2016/11/15 Python
Python中按值来获取指定的键
2019/03/04 Python
python 表格打印代码实例解析
2019/10/12 Python
python访问hdfs的操作
2020/06/06 Python
英国排名第一的餐具品牌:Denby Pottery
2019/11/01 全球购物
土木建筑学生自我评价
2014/01/14 职场文书
自主招生学校推荐信
2014/09/26 职场文书
个人年终总结怎么写
2015/03/09 职场文书
计算机教师工作总结
2015/08/13 职场文书
Python源码解析之List
2021/05/21 Python
MySQL索引失效十种场景与优化方案
2023/05/08 MySQL