阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

如何利用Python随机从list中挑选一个元素

272次阅读
没有评论

共计 1959 个字符,预计需要花费 5 分钟才能阅读完成。

导读 这篇文章主要介绍了如何利用 Python 随机从 list 中挑选一个元素,文章通过研究从列表中选择随机元素的不同实现方法展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
1. 引言

在本文中,我们将研究从列表中选择随机元素的不同实现方法。在日常项目中,我们经常会遇到这种情形,比如随机从多种数据增强策略中选择一种或几种来提升训练数据的多样性。
闲话少说,我们直接开始吧。

2. 举个栗子

为了方便示例,这里我们假设有一个包含多个水果英文名的列表,并且我们需要从中选择一种随机水果进行输出。

水果名称列表如下所示:

fruit_name_list = [
'apple',
'orange',
'banana',
'pear',
'watermelon'
]
3. 使用 Random 库

random 库是一个 python 的内置库,因此我们不需要重新安装它,可以方便地直接导入。这里我们将研究使用该库从列表中选择随机元素的 3 种不同方法。

3.1 随机下标

函数​​random.randrange(num_items)​​用于返回介于区间 0 到​​num_items-1​​之间的一个随机数,如果我们得到一个列表的随机下标,进而我们就可以方便的得到该列表中的一个随机元素。

样例代码如下:

import random
num_items = len(fruit_name_list)
random_index = random.randrange(num_items)
winner = fruit_name_list[random_index]
print(winner)

输出如下:

orange
3.2 随机选择单个元素

函数​​random.choice​​ 将列表作为输入参数,并从列表中返回一个随机元素。在上述的例子中,我们可以直接传递 列表​​fruit_name_list​​作为该函数的参数。

样例代码如下:

winner = random.choice(fruit_name_list)
print(winner)

输出如下:

watermelon
3.3 随机选择多个元素

函数​​random.sample​​功能类似于函数​​random.choice​​,主要区别在于我们可以指定所需的随机元素的数量。在下面的代码样例中,我们可以得到两个随机的水果英文名字。​​random.sample​​ 返回值为一个列表。

样例代码如下:

winners = random.sample(fruit_name_list,2)
print(winners)

输出如下:

['banana', 'watermelon']
4. 使用 Secrets 库

​​Secrets​​ 库优于 Random 库,因为它更安全。与 random 库一样,它也是一个内置的 python 库,我们不必安装任何其他依赖项。但是,如果我们使用的是低于 3.6 的 Python 版本,则必须使用 pip 安装该模块。

4.1 随机下标

函数​​secrets.randbelow​​的功能类似于​​random.randrange​​。使用该函数我们可以得到一个介于 0 和 ​​num_items – 1​​ 之间的随机索引,进而使用该索引来方便地访问我们的水果英文名列表中的元素。

样例代码如下:

import secrets
num_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 库来从列表中随机挑选一个或多个元素的不同实现方法,并均给出了代码示例。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计1959字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
8005168
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...
手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...
颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

  颠覆 AI 开发效率!开源工具一站式管控 30+ 大模型 ApiKey,秘钥付费 + 负载均衡全...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...