迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

如何在 Python 中从列表中随机选择元素

作者:迹忆客 最近更新:2023/12/21 浏览次数:

本教程向你展示了如何在 Python 中从列表中随机选择一个元素。有多种简单的方法来实现这个目标,所有这些方法都涉及到 Python 模块的导入。

本教程将涵盖需要 randomsecretsNumPy 模块的解决方案。

请注意,所有这些将被介绍的解决方案都将使用伪随机数生成器(PRNG)。


在 Python 中使用模块 random 从列表中选择一个随机元素

最常用的随机化模块是 random 模块。这个模块实现了伪随机效用函数来支持涉及随机化的操作。

比方说,我们想从一个列表中随机挑选一个名字,就像投票一样。

["John", "Juan", "Jane", "Jack", "Jill", "Jean"]

为了从这个列表中挑选出一个随机的名字,我们将使用 random.choice(),它将从给出的可用数据中选择一个元素。

import random

names = ["John", "Juan", "Jane", "Jack", "Jill", "Jean"]


def selectRandom(names):
    return random.choice(names)


print("The name selected is: ", selectRandom(names))

当然,输出将是可变的、随机的。所以它可以是存储在变量 names 中的六个名字中的任何一个。


在 Python 中使用模块 secrets 从列表中选择一个随机的元素

secrets 模块基本上与 random 用于相同的目的。然而,secrets 提供了一种实现 PRNG 的加密安全方法。

在现实生活中的应用,如存储密码、认证、加密和解密以及令牌。secrets 比使用 random 要安全得多,因为它只适用于模拟或不处理敏感数据的操作。

在这个问题中,这两个模块提供的值是一样的,因为我们没有处理任何敏感数据,是为了模拟。

在这个例子中,我们将使用相同的 names 列表。secrets 也有一个版本的函数 choice(),它产生的变量输出与 random.choice() 相同。

import secrets

names = ["John", "Juan", "Jane", "Jack", "Jill", "Jean"]


def selectRandom(names):
    return secrets.choice(names)


print("The name selected is: ", selectRandom(names))

在 Python 中使用模块 NumPy 从列表中选择一个随机元素

NumPy 模块也有用于随机化的实用函数,并且有一些扩展性的工具作为其 choice() 函数的参数。

同样,我们将使用相同的列表 names 来演示函数 numpy.random.choice()

import numpy

names = ["John", "Juan", "Jane", "Jack", "Jill", "Jean"]


def selectRandom(names):
    return numpy.random.choice(names)


print("The name selected is: ", selectRandom(names))

该函数将返回与其他两个模块产生的变量输出相同。

NumPy 还为 choice() 提供了其他参数,以列表的形式生成多个输出。

第二个参数接受一个整数值来决定返回多少个随机项。假设我们想从列表 names 中返回 4 个随机元素。

def selectRandom(names):
    return numpy.random.choice(names, 4)


print("The names selected are: ", selectRandom(names))

样本输出:

The names selected are: ['John', 'Jill', 'Jill', 'Jill']

在随机结果中,同一个元素有可能重复不止一次。

如果你希望结果项是唯一的,我们可以传递第三个 boolean 参数,实现随机抽样而不替换。

def selectRandom(names):
    return numpy.random.choice(names, 4, False)

输出示例:

The names selected are: ['Jill', 'John', 'Jack', 'Jean']

该函数将始终产生一个唯一的列表,没有任何重复的元素。

如果我们添加第三个参数,一个主要的缺点是函数的运行时间,因为它会执行一个额外的任务来检查重复的元素,并将其替换为结果中还不存在的元素。

总而言之,从 Python 列表中选择随机项可以通过使用这三个模块之一来实现。randomsecretsNumPy。每一个模块都有它的优点和缺点。

如果你想拥有一个加密安全的 PRNG 方法,那么 secrets 是最好的模块。如果你的目的只是为了模拟或非敏感的数据操作,那么使用 randomNumPy。如果你想要的结果不止一个随机结果,那么就使用 NumPy

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Python 中将 NumPy 数组转换为列表

发布时间:2023/12/24 浏览次数:102 分类:Python

本教程演示了如何将 numpy 数组转换为 Python 中的列表。列表和数组是 Python 中两个最基本且最常用的集合对象。

Python 中追加二维数组

发布时间:2023/12/24 浏览次数:158 分类:Python

本教程讨论如何在 Python 中将值附加到二维数组。在 Python 中,我们可以有 ND 数组。我们可以使用 NumPy 模块在 Python 中处理数组。

在 Python 中将数组写入文本文件

发布时间:2023/12/24 浏览次数:68 分类:Python

本教程演示如何在 python 中将数组保存到文本文件中。读取和写入文件是构建许多用户使用的程序的一个重要方面。Python 提供了一系列可用于资源处理的方法。

Python 导出到 Excel

发布时间:2023/12/24 浏览次数:129 分类:Python

有四种主要方法可用于在 Python 中将数据写入 Excel 文件,DataFrame.to_excel() 方法、xlwt 库、openpyxl 库和 XlsWriter 库。

使用 Selenium Python 在浏览器中打开和关闭标签页

发布时间:2023/12/24 浏览次数:92 分类:Python

本教程演示了如何在 Python 中使用 Selenium 在浏览器中自动打开一个新标签页。Selenium 是强大的 Web 自动化和测试工具。我们使用 Selenium 编写脚本,它可以控制 Web 浏览器并执行特定操作。

Conda 安装 Cv2

发布时间:2023/12/24 浏览次数:106 分类:Python

本教程演示了如何在 Python 中为 anaconda 用户安装 cv2 模块。互联网上有许多可用的 Python IDE。一种这样的 Python IDE 是 Anaconda,这是一种开源软件

Python 中 NumPy 数组的滑动平均值

发布时间:2023/12/24 浏览次数:145 分类:Python

本教程演示了如何在 python 中计算 numpy 数组的滑动平均值。滑动平均值通常用于通过计算特定时间间隔的数据平均值来研究时间序列数据。

在 Python 中计算马氏距离

发布时间:2023/12/24 浏览次数:125 分类:Python

有两个主要方法可用于在 Python 中查找两个 NumPy 数组之间的马氏距离,scipy 库中的 cdist() 函数和 numpy 包中的 numpy.einsum() 函数。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便