在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 相关文章推荐
详解python3百度指数抓取实例
Dec 12 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
Sep 28 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
Aug 31 Python
详解分布式任务队列Celery使用说明
Nov 29 Python
Python线程之定位与销毁的实现
Feb 17 Python
Flask框架学习笔记之模板操作实例详解
Aug 15 Python
python输入错误后删除的方法
Oct 12 Python
keras 特征图可视化实例(中间层)
Jan 24 Python
python列表返回重复数据的下标
Feb 10 Python
Pytorch .pth权重文件的使用解析
Feb 14 Python
在 Python 中使用 MQTT的方法
Aug 18 Python
Django Paginator分页器的使用示例
Jun 23 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输出不同的心形图案
2016/04/22 PHP
php基于openssl的rsa加密解密示例
2016/07/11 PHP
浅谈Laravel模板实体转义带来的坑
2019/10/22 PHP
JavaScript面向对象之体会[总结]
2008/11/13 Javascript
一个可以随意添加多个序列的tag函数
2009/07/21 Javascript
javascript 无提示关闭窗口脚本
2009/08/17 Javascript
用 Javascript 验证表单(form)中多选框(checkbox)值
2009/09/08 Javascript
javascript textContent与innerText的异同分析
2010/10/22 Javascript
jQuery验证Checkbox是否选中的代码 推荐
2011/09/04 Javascript
js中 关于undefined和null的区别介绍
2013/04/16 Javascript
js 浏览本地文件夹系统示例代码
2013/10/24 Javascript
JavaScript代码编写中各种各样的坑和填坑方法
2014/06/06 Javascript
如何用JavaScript定义一个类
2014/09/12 Javascript
JS清除选择内容的方法
2015/01/29 Javascript
jQuery $.each遍历对象、数组用法实例
2015/04/16 Javascript
JS创建对象几种不同方法详解
2016/03/01 Javascript
jQuery实现限制文本框的输入长度
2017/01/11 Javascript
js实现延迟加载的几种方法
2017/04/24 Javascript
利用JS代码自动删除稿件的普通弹幕功能
2019/09/20 Javascript
[22:59]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python完成FizzBuzzWhizz问题(拉勾网面试题)示例
2014/05/05 Python
Python入门篇之编程习惯与特点
2014/10/17 Python
opencv python 图像轮廓/检测轮廓/绘制轮廓的方法
2019/07/03 Python
pandas取出重复数据的方法
2019/07/04 Python
使用Python函数进行模块化的实现
2019/11/15 Python
python中如何使用insert函数
2020/01/09 Python
详解Python爬虫爬取博客园问题列表所有的问题
2021/01/18 Python
基本款天堂:Everlane
2017/05/13 全球购物
英国森林假期:Forest Holidays
2021/01/01 全球购物
年终考核评语
2014/01/19 职场文书
优秀毕业生事迹材料
2014/02/12 职场文书
2014年单位植树节活动方案
2014/03/23 职场文书
医德医风自我评价2015
2015/03/03 职场文书
Go 自定义package包设置与导入操作
2021/05/06 Golang
springboot layui hutool Excel导入的实现
2022/03/31 Java/Android
Debian11 Xfce终端光标的颜色怎么设置?
2022/08/14 数码科技