Python 使用 shuffle() 乱序排列/打乱序列/打乱列表

在 Python 中,列表和元组中的元素是有顺序的,但是由于元组不可变,所以一般我们涉及到打乱操作,都是针对的列表

在深度学习中,由于原始训练数据可能存在顺序性,当我们分批成 mini batch 进行学习的时候,后面的数据会对系数影响更大,所以这种顺序性不是我们想要的,我们希望数据的分布更为均匀,所以“打乱顺序”操作用的非常多。

我们需要用到 random 模块下的 shuffle() 方法。

程序实现

>>> import random
>>> list_old = [1, 2, 3, 'A']
>>> random.shuffle(list_old)
>>> list_old
[1, 3, 2, 'A']
>>> random.shuffle(list_old)
>>> list_old
[1, 3, 'A', 2]

这里要注意的是,首先我们需要 import random 模块。
另外,shuffle() 方法是直接对原列表进行操作!
操作后会直接改变原列表!

假设我们用 shuffle() 后进行赋值,那会产生问题:

>>> import random
>>> list_old = [1, 2, 3, 'A']
>>> list_new = random.shuffle(list_old)
>>> list_new
# 这里发现 list_new 没有任何显示
>>> list_old
[1, 3, 2, 'A']
# 而 list_old 已经被改变了
>>> print(type(list_new))
<class 'NoneType'>
# 查看 list_new 发现是 NoneType
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值