Python内置函数enumerate 将可迭代对象组合成索引序列列举出数据和数据下表

enumerate 是一个内置的 Python 函数,用于将一个可迭代对象(如列表、元组、字符串等)组合为一个索引序列,同时列出数据和数据下标。

参数说明:

  • enumerate(iterable, start=0) 接受两个参数:
    • iterable:必需,一个可迭代的对象,如列表、元组、字符串等。
    • start:可选,开始计数的索引,默认为 0。

返回值:

enumerate 函数返回一个迭代器,每次迭代都会产生一个包含索引和对应元素(或字符)的元组。

用途:

  • 在循环中同时获取索引和值:特别是在需要对列表、元组等进行遍历时,需要同时获取索引和元素值,这时 enumerate 可以提供一种便捷的方式。
  • 方便创建字典:可以通过 enumerate 生成一个字典,将索引作为键,元素作为值。
  • 处理需要索引信息的场景:如根据索引位置更新数据、跟踪位置等。
def check_array(arr):
    for i, value in enumerate(arr):
        if i in (8, 18):  # 第9和第19个元素,因为索引是从0开始
            assert 1 <= value <= 2, f"Element at index {i} ({value}) is not within the range of 1 to 2."
        else:
            assert 3 <= value <= 4, f"Element at index {i} ({value}) is not within the range of 3 to 4."

# 示例用法
array1 = [3.5] * 20  # 生成一个包含 20 个元素,每个元素都是 3.5 的数组
array1[8] = 1.5  # 将第9个元素设为 1.5
array1[18] = 1.7  # 将第19个元素设为 1.7

check_array(array1)  # 不会触发异常,因为第9和第19元素在范围内,其余元素也在范围内

array2 = [3.5] * 20  # 生成一个包含 20 个元素,每个元素都是 3.5 的数组
array2[8] = 2.5  # 将第9个元素设为 2.5,不在要求范围内

check_array(array2)  # 会触发 AssertionError,因为第9个元素不在范围内

  • check_array() 函数遍历数组 arr 中的每个元素,使用 enumerate() 函数获取元素的索引和值。
  • 如果索引是 8 或 18(第9和第19个元素),则使用 assert 语句检查这些元素是否在 1 到 2 的范围内。
  • 对于其他索引位置的元素,检查其是否在 3 到 4 的范围内。
  • 如果任何元素不符合指定的范围要求,assert 语句会触发 AssertionError 异常,并显示相应的错误消息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/762027.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Lua小知识】Vscode中Emmylua插件大量报错的解决方法

起因 Vscode写Lua用的好好的&#xff0c;最近突然出现了大量报错。 看报错是有未定义的全局变量&#xff0c;这里查日志才发现是由于0.7.5版本新增诊断启用配置&#xff0c;所以导致了原先好的代码&#xff0c;现在出现了大量的报错。 解决方案一 最直接的方法当然是在配置中直…

【单片机毕业设计选题24040】-基于STM32的蓝牙防丢器设计

系统功能: 系统上电后显示“欢迎使用蓝牙防丢系统请稍后”两秒钟显示正常界面&#xff0c;如果蓝牙正常连接OLED显示Connected, 蓝牙未连接则显示DisConnected同时蜂鸣器报警 蓝牙正常连接后在APP上每隔三秒显示一个Connected 系统功能框图: 主要功能模块原理图: 电源时钟…

CSS|04 复合选择器伪类选择器属性选择器美化超链接

基本选择器&#xff1a;见上篇基本选择器 复合选择器选择器1,选择器2{属性:值;} 多元素选择器&#xff0c;同时匹配选择器1和选择器2&#xff0c;多个选择器之间用逗号分隔举例&#xff1a; p,h1,h2{margin:0px;}E F{属性:值;} 后代元素选择器&#xff0c;匹配所有属于E元素后…

【Python机器学习】模型评估与改进——分组交叉验证

分组交叉验证是非常常见的一种交叉验证策略&#xff0c;它适用于数据中的分组高度相关时。比如我们想构建一个从人脸图片中识别情感的系统&#xff0c;并且收集了100个人的照片的数据集&#xff0c;其中每个人都进行了多次拍摄&#xff0c;分别展示了不同的情感。我们的目标是构…

Python 文件操作

文件编码 将文件的内容翻译为二进制 文件操作 打开文件 open函数 语法&#xff1a; open(name, mode, encoding)name&#xff1a;文件名的字符串&#xff0c;可以包含具体路径。若没有路径&#xff0c;则默认为与py文件位于同一层 mode&#xff1a;打开文件的模式&#xf…

PP-JITTER \RMS-JITTER 及其他Jitter解析

Jitter概念 Jitter(抖动)是从时域评价时钟信号质量的重要参数。 首先要明确的是它是一个统计量,因此有标准差(均方根,rms)和范围(峰峰值,p2p); 然后根据样本的类型可以划分成不同的分类,如Jabs(absolute jitter)、Jp(period jitter)、Jc2c(cycle-to-cycle ji…

Forecasting from LiDAR via Future Object Detection

Forecasting from LiDAR via Future Object Detection 基础信息 论文&#xff1a;cvpr2022paper https://openaccess.thecvf.com/content/CVPR2022/papers/Peri_Forecasting_From_LiDAR_via_Future_Object_Detection_CVPR_2022_paper.pdfgithub&#xff1a;https://github.co…

UWB透传模块-通信距离1KM UWB650 透明传输 | 双向测距 | 定位模块

UWB650模块是思为无线推出的一款基于UWB&#xff08;Ultra Wide Band&#xff0c;超宽带&#xff09;技术的无线通讯模块&#xff0c;遵循IEEE 802.15.4-2020 Standard协议。UWB650模块是在UWB3000F27基础上研发&#xff0c;使该模块拥有0.5W的高功率功放芯片。用户无需去设计电…

Ubuntu使用chkconfig命令时报错:chkconfig: command not found解决办法

文章目录 前言一、安装sysv-rc-conf1.1 引入库安装可能报错&#xff1a;E: Unable to locate package sysv-rc-conf1.2 添加镜像源后更新安装源&#xff1a;1.3 更新安装源可能报错如下内容&#xff1a;1.4 添加密钥1.5 添加密钥后更新安装源&#xff1a;1.6 用apt-get安装sysv…

能源企业的“宿命”,是成为穿越时代的传奇

2012年&#xff0c;杰里米里夫金的《第三次工业革命》出版&#xff0c;他在书中提出了能源互联网的观点&#xff0c;将互联网技术和可再生能源结合起来&#xff0c;用以支持未来的产业革命。 里夫金不愧是和凯文凯利&#xff08;KK&#xff09;齐名的未来学家&#xff0c;十几…

fastapi swagger在线接口文档报错

fastapi swagger在线接口文档报错 1、报错信息 Unable to render this definition The provided definition does not specify a valid version field. Please indicate a valid Swagger or OpenAPI version field. Supported version fields are swagger: “2.0” and those …

Python笔记 json数据格式的转换

一、json数据格式 1.什么是json json是一种轻量级的数据交互格式。可以按照json指定的格式去组织和封装数据 json本质上是一个带有特定格式的字符串 主要功能&#xff1a;json就是一种在各个编程语言中流通的数据格式&#xff0c;负责不同编程语言中的数据传递和交互。类似…

Windows电脑自建我的世界MC服务器并与好友远程联机游戏教程

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

红海云签约茉莉奶白,引领茶饮行业人力资源数字化新潮流

关于茉莉奶白 茉莉奶白&#xff0c;始于深圳&#xff0c;以茉莉为首的东方四白花为灵感&#xff0c;择高山茗茶以花窨之法制茶&#xff0c;专注茉莉香中国茶。一直坚持对茉莉的极致探索&#xff0c;从视觉到味蕾完美诠释东方摩登。让现代年轻人在日常中感知东方花道与茶道的魅力…

函数创建单链表---无n型,需要 while 循环 + scanf

题目&#xff1a; #include <stdlib.h> struct link{int data;struct link *next; }; struct link* creatLink(); int main(){struct link *head,*p;headcreatLink();for(phead->next ;p;pp->next )printf("%d ",p->data );return 0; }/* 请在这里填…

图像基础知识入门【图像概念不同图像格式】

图像基础知识入门【图像概念&不同图像格式】 最近有在处理图像转换&#xff0c;因此稍微补足了一下图像相关知识&#xff0c;特在此记录。下面汇总是我根据自己理解和网上查阅资料而来。如有错误&#xff0c;欢迎大家指正。 1 基础概念 像素/分辨率 像素(Pixel)&#xff…

51单片机嵌入式开发:STC89C52环境配置到点亮LED

STC89C52环境配置到点亮LED 1 环境配置1.1 硬件环境1.2 编译环境1.3 烧录环境 2 工程配置2.1 工程框架2.2 工程创建2.3 参数配置 3 点亮一个LED3.1 原理图解读3.2 代码配置3.3 演示 4 总结 1 环境配置 1.1 硬件环境 硬件环境采用“华晴电子”的MINIEL-89C开发板&#xff0c;这…

昇思25天学习打卡营第6天|Vision Transformer

文章目录 昇思MindSpore应用实践基于MindSpore的Vision Transformer1、Vision Transformer&#xff08;ViT&#xff09;简介网络结构 2、Attention模块Encoder部分用到的功能函数&#xff1a;整体构建ViT模型 3、模型训练4、模型验证 Reference 昇思MindSpore应用实践 本系列文…

Java web应用性能分析之【prometheus监控K8s指标说明】

常规k8s的监控指标 单独 1、集群维度 集群状态集群节点数节点状态&#xff08;正常、不可达、未知&#xff09;节点的资源使用率&#xff08;CPU、内存、IO等&#xff09; 2、应用维度 应用响应时间 应用的错误率 应用的请求量 3、系统和集群组件维度 API服务器状态控…

C++视觉开发 三.缺陷检测

一.距离变换 1.概念和功能 距离变换是一种图像处理技术&#xff0c;用于计算图像中每个像素到最近的零像素&#xff08;背景像素&#xff09;的距离。它常用于图像分割、形态学操作和形状分析等领域。它计算图像中每个像素到最近的零像素&#xff08;背景像素&#xff09;的距…