在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编程实现蚁群算法详解
Nov 13 Python
疯狂上涨的Python 开发者应从2.x还是3.x着手?
Nov 16 Python
Python中协程用法代码详解
Feb 10 Python
对python numpy数组中冒号的使用方法详解
Apr 17 Python
《与孩子一起学编程》python自测题
May 27 Python
浅析Python 中几种字符串格式化方法及其比较
Jul 02 Python
用Cython加速Python到“起飞”(推荐)
Aug 01 Python
Windows下Anaconda安装、换源与更新的方法
Apr 17 Python
python获取系统内存占用信息的实例方法
Jul 17 Python
python中@contextmanager实例用法
Feb 07 Python
Matlab如何实现矩阵复制扩充
Jun 02 Python
Python 图片添加美颜效果
Apr 28 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
mac下安装nginx和php
2013/11/04 PHP
php实现将字符串按照指定距离进行分割的方法
2015/03/14 PHP
Yii2中多表关联查询hasOne hasMany的方法
2017/02/15 PHP
jQuery模拟超链接点击效果代码
2013/04/21 Javascript
js取模(求余数)隔行变色
2014/05/15 Javascript
Javascript核心读书有感之语句
2015/02/11 Javascript
简介JavaScript中的setTime()方法的使用
2015/06/11 Javascript
jquery模拟进度条实现方法
2015/08/03 Javascript
分享一些常用的jQuery动画事件和动画函数
2015/11/27 Javascript
AngularJS中isolate scope的用法分析
2016/11/22 Javascript
jQuery实现简单的手风琴效果
2020/04/17 jQuery
安装vue-cli报错 -4058 的解决方法
2017/10/19 Javascript
详解vue2.0+vue-video-player实现hls播放全过程
2018/03/02 Javascript
详解Require.js与Sea.js的区别
2018/08/05 Javascript
原生javascript自定义input[type=radio]效果示例
2019/08/27 Javascript
python模块restful使用方法实例
2013/12/10 Python
Python生成随机数的方法
2014/01/14 Python
python学习之第三方包安装方法(两种方法)
2015/07/30 Python
举例简单讲解Python中的数据存储模块shelve的用法
2016/03/03 Python
Python中with及contextlib的用法详解
2017/06/08 Python
pytorch 调整某一维度数据顺序的方法
2018/12/08 Python
梅尔频率倒谱系数(mfcc)及Python实现
2019/06/18 Python
python实现tail实时查看服务器日志示例
2019/12/24 Python
PyCharm 在Windows的有用快捷键详解
2020/04/07 Python
python logging.info在终端没输出的解决
2020/05/12 Python
Django实现任意文件上传(最简单的方法)
2020/06/03 Python
Crocs卡骆驰洞洞鞋日本官方网站:Crocs日本
2016/08/25 全球购物
意大利制造的男鞋和女鞋:SCAROSSO
2018/03/07 全球购物
时尚圣经:The Fashion Bible
2019/03/03 全球购物
Europcar意大利:汽车租赁
2019/07/07 全球购物
大学生农村教师实习自我鉴定
2013/09/21 职场文书
日语专业个人的求职信
2013/12/03 职场文书
C++程序员求职信
2014/05/07 职场文书
学校食堂食品安全责任书
2014/07/28 职场文书
新闻学专业求职信
2014/07/28 职场文书
WCG2010 星际争霸决赛 Flash vs Goojila 1 星际经典比赛回顾
2022/04/01 星际争霸