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
发布了44 篇原创文章 · 获赞 0 · 访问量 1705

猜你喜欢

转载自blog.csdn.net/qq_42067550/article/details/105378515