在本教程中,我们将学习在 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 randomlist1 = [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 randomlist1 = [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 randomlist1 = [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 randomlist1 = [[1, 2], [3, 4], [5, 6]]for i in list1: random.shuffle(i)print(list1)以相同的随机顺序排列多个列表假设有两个列表:一个包含水果,另一个包含该水果的数量。对列表进行随机排列,但希望,两者一一对应。为了实现这一点,我们使用 zip() 函数将两个列表合并,然后随机排列列表。
import randomlist1 = ['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)❝
文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈!
❞