如何在 Python 中随机排列列表元素

liftword3周前 (04-11)技术文章4

在本教程中,我们将学习在 Python 中如何打乱列表元素顺序,随机排列列表元素。如何随机排列列表是一项非常有用的技能。它在开发需要选择随机结果游戏中非常有用。它还适用于数据相关的工作中,可能需要提取随机结果。

.shuffle 和 .sample 有什么区别?

Python 有一个非常有用的库来生成随机数,称为 random 我们将使用 random.shuffle() 和 random.sample() 函数来随机排列列表元素。在我们研究如何使用它们之前,让我们快速了解它们之间的差异。

random.shuffle() 和 random.sample() 这两个函数都返回一个随机排序的列表,但它们返回它们的方式是不同的:

random.shuffle():随机排列原始列表。

random.sample():返回基于原始列表的新随机列表。

random.sample()也可用于随机排列字符串和元组,它会创建一个新列表。

使用 random.shuffle() 随机排列列表元素

shuffle() 函数直接将序列的所有元素随机排序,没有返回值。

「shuffle() 语法格式:」

import random

random.shuffle(lst)

import random
list1 = [1, 2, 3, 4, 5, 6]
random.shuffle(list1)
print(list1)

使用 random.sample() 随机排列列表元素

sample() 返回一个从序列即列表、元组、字符串或集合中选择的特定长度的项目列表。用于无替换的随机抽样。

「sample() 语法格式:」

import random

random.sample(sequence, k)

「参数:」

sequence: 可以是一个列表,元组,字符串,或集合。

k: 一个整数值,它指定一个样本的长度。

返回:从序列中选择k长度的元素的新列表。

import random
list1 = [1, 2, 3, 4, 5, 6]
list2 = random.sample(list1, len(list1))
print(list2)

使用 random.seed() 固定随机排列结果

seed() 方法改变随机数生成器的种子,可以在调用其他随机模块函数之前调用此函数。

调用 random.random() 生成随机数时,每一次生成的数都是随机的。但是,当我们预先使用 random.seed(x) 设定好种子之后,其中的 x 可以是任意数字,如1,这个时候,先调用它的情况下,使用 random() 生成的随机数将会是同一个。

import random
list1 = [1, 2, 3, 4, 5, 6]
random.seed(1)
for i in range(5):
    random.shuffle(list1)
    print(list1)
# 输出:
[3, 4, 6, 1, 5, 2]
[3, 4, 6, 5, 2, 1]
[6, 1, 2, 5, 3, 4]
[4, 1, 2, 6, 3, 5]
[5, 6, 3, 4, 1, 2]

随机排列列表的子列表

在 Python 中,你经常会遇到多维列表,我们可以使用 for 循环访问列表列表中的每子列表,使用 shuffle() 函数来随机排列每个子列表的元素。

import random
list1 = [[1, 2], [3, 4], [5, 6]]
for i in list1:
    random.shuffle(i)
print(list1)

以相同的随机顺序排列多个列表

假设有两个列表:一个包含水果,另一个包含该水果的数量。对列表进行随机排列,但希望,两者一一对应。为了实现这一点,我们使用 zip() 函数将两个列表合并,然后随机排列列表。

import random
list1 = ['apples', 'grapes', 'oranges', 'bananas']
list2 = [50, 40, 60, 70]
list3 = list(zip(list1, list2))
random.shuffle(list3)
list1 = [item[0] for item in list3]
list2 = [item[1] for item in list3]
print(list1)
print(list2)

文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈!

相关文章

Python中的random模块:生成随机数的魔法工具

在编程中,随机数无处不在——无论是游戏中的随机事件、抽奖程序中的公平选择,还是模拟实验中的数据生成,都离不开它。Python的random模块为我们提供了丰富的工具,让随机数的生成变得简单又有趣。一、...

Python 随机魔法:从抽奖到加密的终极指南

魔法对话录小白:(挠头)我写的抽奖程序每次结果都一样,是不是被诅咒了?专家:(掏出魔法骰子)掌握random模块,让程序充满惊喜!基础魔法入门1. 召唤随机模块import random # 导入随...

Python编写猜数字小游戏教程

以下是一个用 Python 编写的简单猜数字小游戏示例,适合初学者学习:pythonimport randomdef guess_number():# 生成 1-100 之间的随机整数secret_n...

我们如何用Python快速随机生成一个密码

在互联网发达的今天,我们很多地方都需要密码,设置密码是一个很平常的一件事情,为了在互联网的信息安全,还是有必要弄一个安全的密码的,有的时候要想个半天,如果我们自己有个密码生成机器,那就简化很多了。...

Python实现猜数游戏判断反应快慢

任务要求使用Python编写一个猜数游戏,系统会随机生成一个1到100之间的整数作为目标数字。玩家需要输入猜测的数字,系统会根据玩家的输入给出提示,如猜的数字过大或过小。同时,要记录玩家每次猜测所花费...

Python速查表

1. 变量与数据类型基本数据类型x = 10 # 整数 int y = 3.14 # 浮点数 float z = "Python" # 字符串 str b = True...