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.7check_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.mzph.cn/bicheng/38702.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从零开始:Java开发者的设计模式指南

从零开始&#xff1a;Java开发者的设计模式指南 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨Java开发中的设计模式&#xff0c;这是每位J…

一、课程介绍,基础—环境安装、判断、循环语句等(爬虫及数据可视化)

一、课程介绍&#xff0c;基础—环境安装、判断、循环语句等&#xff08;爬虫及数据可视化&#xff09; 1. 课程介绍1.1 相关内容1.2 学习目标1.3 学习内容安排 2. python2.1 环境配置2.2 标识符和关键字2.3 运算符2.4 判断语句2.5 循环语句 1. 课程介绍 1.1 相关内容 10天的…

【pytorch11】高阶操作

高阶操作 WhereGather where 三个参数&#xff0c;第一个是condition&#xff0c;第二个参数是源头A&#xff0c;第三个参数是源头B&#xff0c;也就是说有两项数据A和B&#xff0c;C有可能来自于A也有可能来自于B&#xff0c;如果全部来自于A的话直接赋值给A&#xff0c;如果…

算法金 | Transformer,一个神奇的算法模型!!

大侠幸会&#xff0c;在下全网同名「算法金」 0 基础转 AI 上岸&#xff0c;多个算法赛 Top 「日更万日&#xff0c;让更多人享受智能乐趣」 抱个拳&#xff0c;送个礼 在现代自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;Transformer 模型的出现带来了革命性的变…

推送本地代码库到gitee

方式一&#xff1a; 1、在gitee创建代码库 2、下拉到本地 git clone https:xxxx 3、将要上传的代码复制进去 4、git add . 5、git commit -m 6、git push -u origin master 成功 方式二&#xff1a; 1、在gitee创建代码库 2、将要上传的代码库执行 git init 3、gi…

无线物联网练习题

文章目录 选择填空简答大题 选择 不属于物联网感知技术的是(A) A:ZigBee B:红外传感器 C:FRID D:传感器 ZigBee是一种无线通信技术&#xff0c;虽然它常用于物联网中作为设备之间的通信手段&#xff0c;但它本身并不是一种感知技术 关于物联网于与互联网的区别的描述&#xff…

【机器学习】基于Transformer的迁移学习:理论与实践

引言 在机器学习领域&#xff0c;迁移学习已成为提升模型训练效率和性能的重要策略&#xff0c;特别是在标注数据稀缺的场景下。Transformer模型自2017年由Google提出以来&#xff0c;在自然语言处理&#xff08;NLP&#xff09;领域取得了突破性进展&#xff0c;并逐渐扩展到…

map和set的底层实现

前言 map和set的底层都是由红黑树构成&#xff0c;但是map是kv模型&#xff0c;set是k模型。如何用一颗子树来同时封装map和set&#xff0c;还有怎么实现map/set的迭代器是这节重点 map和set的模板参数 struct MapKeyOfT{const K& operator()(const pair<K, V>&am…

XF 533-2012 挡烟垂壁

挡烟垂壁是指用不燃材料制成&#xff0c;垂直安装在建筑顶棚、横梁或吊顶下&#xff0c;能在火灾时形成一定的蓄烟空间的挡烟分隔设施。 XF 533-2012 挡烟垂壁测试项目 测试要求 测试标准 外观 XF 533 材料 XF 533 尺寸与极限偏差 XF 533 漏烟量 XF 533 耐高温性能 …

Zuul介绍

Zuul 是 Netflix 开源的一个云平台网络层代理&#xff0c;它主要用于路由、负载均衡、中间件通信和动态路由。Zuul 本质上是一个基于 JVM 的网关&#xff0c;它提供了以下功能&#xff1a; 1.路由&#xff1a;Zuul 允许客户端和服务器之间的所有入站和出站请求通过一个中心化的…

gbase8s数据库中根据系统表查看锁的现状和锁资源的监控(包括了两个onstat -g的关键命令和锁的查看演示)

1. 锁资源信息的查找和监控 1.1. 系统表中关于锁的信息 1.1.1. 当前正在占用锁资源和等待锁资源信息的系统表syslocks和测试 > select * from sysmaster:syslocks; dbsname test --数据库名称 tabname test --锁发生的表名称 rowidlk 6918 --发生锁的行号 keynum …

小红书怎么保存无水印图?

使用小红书APP长按保存的图片代有水印&#xff0c;很多人想知道保存小红书无水印图片的方法。本文教你如何保存到无水印的小红书图片&#xff0c;但是请注意不要侵犯作者图片的版权。 小红书怎么保存无水印图&#xff1f; 1、手机上打开小红书APP&#xff1b; 2、打开后&#…

昇思25天学习打卡营第13天|BERT

一、简介&#xff1a; BERT全称是来自变换器的双向编码器表征量&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;&#xff0c;它是Google于2018年末开发并发布的一种新型语言模型。与BERT模型相似的预训练语言模型例如问答、命名实体识别、自…

2.3章节Python中的数值类型

1.整型数值 2.浮点型数值 3.复数   Python中的数值类型清晰且丰富&#xff0c;主要分为以下几种类型&#xff0c;每种类型都有其特定的用途和特性。 一、整型数值 1.定义&#xff1a;整数类型用于表示整数值&#xff0c;如1、-5、100等。 2.特点&#xff1a; Python 3中的…

Quartz表达式:定时任务调度的高级配置与应用

Quartz表达式&#xff1a;定时任务调度的高级配置与应用 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 1. Quartz表达式概述 Quartz是一个强大的开源作业调…

卡尔曼滤波公式推导笔记

视频见B站上DR_CAN的卡尔曼滤波器 【卡尔曼滤波器】3_卡尔曼增益超详细数学推导 &#xff5e;全网最完整_哔哩哔哩_bilibili

动手学深度学习5.6 GPU-笔记练习(PyTorch)

以下内容为结合李沐老师的课程和教材补充的学习笔记&#xff0c;以及对课后练习的一些思考&#xff0c;自留回顾&#xff0c;也供同学之人交流参考。 本节课程地址&#xff1a;17 使用和购买 GPU【动手学深度学习v2】_哔哩哔哩_bilibili 本节教材地址&#xff1a;5.6. GPU —…

数据库定义语言(DDL)

数据库定义语言&#xff08;DDL&#xff09; 一、数据库操作 1、 查询所有的数据库 SHOW DATABASES;效果截图&#xff1a; 2、使用指定的数据库 use 2403 2403javaee;效果截图&#xff1a; 3、创建数据库 CREATE DATABASE 2404javaee;效果截图&#xff1a; 4、删除数据…

玩转springboot之springboot热部署

springboot热部署 热部署是在服务器运行时重新部署项目&#xff0c;直接加载整个应用&#xff0c;会释放内存&#xff0c;不过比较耗时 配置tomcat实现热部署 有三种方式 方式一 把项目web文件放在webapps目录下 方式二 在tomcat\conf\server.xml中的<host>标签内添加<…

面向阿克曼移动机器人(自行车模型)的LQR(最优二次型调节器)路径跟踪方法

线性二次调节器&#xff08;Linear Quadratic Regulator&#xff0c;LQR&#xff09;是针对线性系统的最优控制方法。LQR 方法标准的求解体系是在考虑到损耗尽可能小的情况下, 以尽量小的代价平衡其他状态分量。一般情况下&#xff0c;线性系统在LQR 控制方法中用状态空间方程描…