python从list中随机取一个元素,python 随机选取列表中的元素
本文主要介绍如何使用Python从列表中随机选择一个元素。文章通过研究从列表中选择随机元素的不同实现方法进行了详细介绍,具有一定的参考价值,有需要的小伙伴可以参考一下。
00-1010 1.导言2。给我举个栗子3。使用随机库3.1随机下标3.2随机选择单个元素3.3随机选择多个元素4。使用秘密库4.1随机下标4.2随机选择单个元素4.3随机选择多个元素5。摘要
目录
在本文中,我们将研究从列表中选择随机元素的不同实现方法。在日常项目中,我们经常会遇到这种情况,比如随机选择一种或几种数据增强策略来提高训练数据的多样性。
1. 引言
为了方便举例,这里我们假设有一个多个水果的英文名列表,需要从中随机选择一个水果进行输出。
水果名称列表如下所示:
水果_名称_列表=[
苹果公司,
橙色,
香蕉,
梨子,
西瓜
]
2. 举个栗子
随机库是python的内置库,我们不需要重新安装,直接导入就可以了,很方便。在这里,我们将研究使用这个库从列表中选择随机元素的3种不同方法。
3. 使用Random库
函数random.randrange(num_items)用于返回一个介于0和num_items-1之间的随机数。如果我们得到一个列表的随机下标,那么我们很容易得到列表中的一个随机元素。
样例代码如下:
随机导入
num_items=len(水果名称列表)
random_index=random.randrange(数量_项)
winner=水果名称列表[随机索引]
打印(获胜者)
输出如下:
橙色的
3.1 随机下标
函数random.choice将一个列表作为输入参数,并从列表中返回一个随机元素。在上面的例子中,我们可以直接将列表fruit_name_list作为这个函数的参数进行传递。
样例代码如下:
winner=random.choice(水果名称列表)
打印(获胜者)
输出如下:
西瓜
3.2 随机选择单个元素
函数random.sample类似于函数random.choice,主要区别在于我们可以指定所需的随机元素数量。在下面的代码示例中,我们可以获得两个随机的水果英文名称。random.sample的返回值是一个列表。
样例代码如下:
winners=random . sample(fruit _ name _ list,2)
印刷品(获奖者)
输出如下:
[香蕉,西瓜]
/p>
4. 使用Secrets库
Secrets
库优于 Random 库,因为它更安全。与 random 库一样,它也是一个内置的 python 库,我们不必安装任何其他依赖项。但是,如果我们使用的是低于3.6 的Python版本,则必须使用pip安装该模块。
4.1 随机下标
函数secrets.randbelow
的功能类似于random.randrange
。使用该函数我们可以得到一个介于 0 和 num_items - 1
之间的随机索引,进而使用该索引来方便地访问我们的水果英文名列表中的元素。
样例代码如下:
import secretsnum_items = len(fruit_name_list)
random_index = secrets.randbelow(num_items)
winner = fruit_name_list[random_index]
print(winner)
输出如下:
watermelon
4.2 随机选择单个元素
函数secrets.choice
功能类似于函数random.choice
,该函数将列表作为输入参数,并从该列表中返回一个随机元素。
样例代码如下:
winner = secrets.choice(fruit_name_list)print(winner)
输出如下:
apple
4.3 随机选择多个元素
函数secrets.SystemRandom().sample()
功能类似于 random.sample()
,该函数接受输入列表和返回元素个数作为输入参数,同时该函数返回一个挑选出的随机元素的列表。
样例代码如下:
winners = secrets.SystemRandom().sample(fruit_name_list,2)print(winners)
输出如下:
['watermelon', 'orange']
5. 总结
本文介绍了分别使用Random库以及使用Secrets库来从列表中随机挑选一个或多个元素的不同实现方法,并均给出了代码示例。
到此这篇关于如何利用Python随机从list中挑选一个元素的文章就介绍到这了,更多相关 Python从list中挑选元素内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。