python random shuffle函数用法

python random shuffle函数用法

Python random.shuffle 函数用法

在Python中,random.shuffle 是用于将一个列表(list)中的元素随机打乱顺序的函数。这个函数直接修改原列表,不会返回新的列表。因此,使用该函数后,原来的列表顺序会被改变。

语法

random.shuffle(x[, random])
  • 参数

    • x: 一个可变序列,通常是列表(list)。注意,这个序列的元素应当是可以通过索引访问的。
    • random (可选): 一个随机数生成器对象。如果不提供,则默认使用 random 模块的默认随机数生成器。
  • 返回值: 无。该函数会直接修改传入的列表。

使用示例

  1. 基本用法

    import random my_list = [1, 2, 3, 4, 5] print("Original list:", my_list) random.shuffle(my_list) print("Shuffled list:", my_list)

    输出可能类似于:

    Original list: [1, 2, 3, 4, 5] Shuffled list: [3, 1, 4, 5, 2]
  2. 使用自定义的随机数生成器

    import random # 创建一个随机数生成器实例 rng = random.Random() rng.seed(42) # 设置种子以便结果可重复 my_list = ['a', 'b', 'c', 'd'] print("Original list:", my_list) random.shuffle(my_list, rng) print("Shuffled list:", my_list)

    注意,由于设置了相同的种子值,每次运行这段代码时得到的打乱顺序将是相同的(假设Python版本和平台未变)。

注意事项

  • random.shuffle 直接修改了输入的列表,因此如果你需要保留原始列表的顺序,应该在调用 shuffle 之前先复制一份该列表。例如:

    import random original_list = [10, 20, 30, 40, 50] shuffled_list = original_list[:] # 创建列表的副本 random.shuffle(shuffled_list) print("Original list:", original_list) print("Shuffled list:", shuffled_list)
  • 该函数不适用于不可变的序列类型,如元组(tuple)或字符串(str),因为这些类型的对象不能被原地修改。

通过理解并正确使用 random.shuffle 函数,你可以方便地在编程中实现列表元素的随机化操作。