Python 中的 shuffle

2024 年 8 月 29 日 | 阅读 3 分钟

Shuffling(打乱)是指将元素随机排序,这意味着在排列元素时没有特定的顺序。

在本教程中,我们将学习如何使用 Python 打乱列表中的元素。

我们将使用以下不同的方法来打乱元素:

  1. 使用 Fisher-Yates 洗牌算法
  2. 使用 shuffle()
  3. 使用 sample()
  4. 随机选择元素然后将它们添加到列表中

我们将详细讨论每种方法。

那么,让我们从第一个开始:

使用 Fisher-Yates 洗牌算法

输出

The initialized list is :  [11, 20, 19, 43, 22, 10]
The shuffled list is :  [11, 43, 20, 19, 10, 22]

说明

让我们来理解一下上面程序中我们所做的事情。

  1. 第一步,我们导入了 random 模块。
  2. 在此之后,我们初始化了一个包含不同数值的列表。
  3. 下一步,我们使用 for 循环,然后随机选择一个元素,并将其与随机索引处的元素进行交换。
  4. 最后,我们在输出中显示了打乱后的列表。

使用 shuffle()

在第二种方法中,我们将看到如何使用 shuffle() 来打乱列表中的元素。

考虑下面的程序-

输出

The initialized list is :  [11, 20, 19, 43, 22, 10]
The shuffled list is :  [22, 10, 20, 11, 19, 43]

说明

让我们来理解一下上面程序中我们所做的事情:

  1. 第一步,我们导入了 random 模块。
  2. 在此之后,我们初始化了一个包含不同数值的列表。
  3. 下一步,我们使用了 shuffle() 并将 'list_values1' 作为参数传递。
  4. 最后,我们在输出中显示了打乱后的列表。

使用 random.sample()

在第三种方法中,我们将使用 random.sample() 来完成同样的操作。

下面的程序演示了如何做到这一点:

输出

The initialized list is :  [11, 20, 19, 43, 22, 10]
The shuffled list is :  [43, 20, 19, 11, 10, 22]

说明

现在是时候理解上面的程序了:

  1. 第一步,我们导入了 random 模块。
  2. 在此之后,我们初始化了一个包含不同数值的列表。
  3. 下一步,我们使用了 sample() 并将 'list_values1' 和列表的长度作为其参数传递。
  4. 最后,我们在输出中显示了打乱后的列表。

最后,是时候讨论最后一种方法了,这确实很有趣,让我们来看看如何……。

随机选择元素然后将它们添加到列表中

输出

The initialized list is :  [11, 20, 19, 43, 22, 10]
The shuffled list is :  [19, 22, 20, 43, 10, 11]

说明

现在,让我们看看这段代码的解释:

  1. 第一步,我们导入了 random 模块。
  2. 在此之后,我们初始化了一个包含不同数值的列表,然后计算了列表的长度。
  3. 下一步,我们使用了 sample() 并将 'list_values1' 和列表的长度作为其参数传递。
  4. 现在我们使用了 for 循环,它随机选择一个元素,将其删除,然后将其添加到列表中。
  5. 最后,我们在输出中显示了打乱后的列表。

结论

在本教程中,我们学习了在 Python 中打乱列表元素的各种方法。