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

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

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

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

程序实现

>>> import random
>>> list_old = [1, 2, 3, 'A'
### 如何在 Python使用 `random` 模块对列表进行随机打乱Python 的标准库中,`random` 模块提供了一个名为 `shuffle()` 的函数,用于打乱可变序列(如列表)。以下是该方法的具体说明以及实现方式: #### 方法描述 `random.shuffle(x[, random])` 函数会直接修改传入的列表对象 `x` 并将其元素随机排列。如果提供了可选参数 `random`,它应该是一个返回 `[0.0, 1.0)` 范围内的浮点数的函数,默认情况下使用的是 `random.random()`。 #### 实现代码示例 以下是一段演示如何使用 `random.shuffle()` 打乱列表的代码: ```python import random my_list = [1, 2, 3, 4, 5] random.shuffle(my_list) print("Shuffled list:", my_list) ``` 上述代码中的 `random.shuffle(my_list)` 将会对 `my_list` 进行就地修改并重排列其元素[^1]。 需要注意的是,由于 `random.shuffle()` 是就地操作,因此不会返回列表实例而是直接改变列表的内容。 #### 复制后再打乱的情况 如果你希望保留列表不变而仅获取一个的被打乱版本,则可以结合切片复制或 `copy.deepcopy()` 来完成此任务: ```python import random original_list = ['a', 'b', 'c', 'd'] shuffled_list = original_list[:] # 创建副本 random.shuffle(shuffled_list) print("Original List:", original_list) print("Shuffled List:", shuffled_list) ``` 这里通过创建 `original_list[:)]` 切片实现了浅拷贝,从而保护了初始数据不被更改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值