python之enumerate()函数使用总结

        enumerate() 函数是一个内置函数,用于在迭代过程中同时获取元素的索引和值。它返回一个枚举对象,包含了索引和对应的元素。

1. enumerate() 函数的语法

如下:

enumerate(iterable, start=0)

        参数说明:

                iterable:必需,一个可迭代对象,如列表、元组、字符串等。

                start:可选,指定索引的起始值,默认为 0。

2. enumerate() 函数的用法

2.1 基本用法

fruits = ['apple', 'banana', 'orange']
for index, fruit in enumerate(fruits):print(index, fruit)

输出结果:

0 apple
1 banana
2 orange

2.2 指定起始索引

fruits = ['apple', 'banana', 'orange']for index, fruit in enumerate(fruits, start=1):print(index, fruit)

输出结果:

1 apple
2 banana
3 orange

2.3 结合解包(unpacking)

for index, _ in enumerate(fruits):print(index)

输出结果:

0
1
2

在上述情况下,可以使用下划线 _ 来表示不需要的值,以减少内存消耗。

2.4 枚举对象转换为列表或元组

enum_list = list(enumerate(fruits))
enum_tuple = tuple(enumerate(fruits))print(enum_list)
print(enum_tuple)

输出结果:

[(0, 'apple'), (1, 'banana'), (2, 'orange')]
((0, 'apple'), (1, 'banana'), (2, 'orange'))

可以使用 list() 或 tuple() 函数将枚举对象转换为列表或元组。

上述是 enumerate() 函数的一些常见用法。

当使用enumerate()函数时,还可以结合其他常用的Python函数和技巧来实现更多功能。

2.5 获取特定条件的元素索引

fruits = ['apple', 'banana', 'orange']# 查找元素为'banana'的索引
index = next((index for index, fruit in enumerate(fruits) if fruit == 'banana'), None)
print(index)

输出结果: 1

在上述示例中,使用了生成器表达式和next()函数来查找列表中特定元素('banana')的索引。

2.6 反向遍历列表并获取索引

for index, fruit in enumerate(reversed(fruits)):print(index, fruit)

输出:

0 orange
1 banana
2 apple

通过使用reversed()函数,可以反向遍历列表并获取相应的索引和值。

2.7 枚举多个可迭代对象

fruits = ['apple', 'banana', 'orange']
prices = [1.0, 0.5, 0.8]for index, (fruit, price) in enumerate(zip(fruits, prices)):print(index, fruit, price)

输出结果:

0 apple 1.0
1 banana 0.5
2 orange 0.8

在上述示例中,使用了zip()函数将多个可迭代对象(fruits和prices)进行组合,并使用enumerate()获取索引和对应的值。

2.8 枚举字典的键值对

fruits = {'apple': 1.0, 'banana': 0.5, 'orange': 0.8}for index, (fruit, price) in enumerate(fruits.items()):print(index, fruit, price)
输出结果:
0 apple 1.0
1 banana 0.5
2 orange 0.8

        通过使用items()方法,可以将字典的键值对转换为可迭代对象,并使用enumerate()获取索引和对应的键值对。

       上述是一些扩展的enumerate()函数用法示例,可以根据具体需求进行灵活运用。enumerate()函数在处理需要索引的迭代过程中非常有用,可以简化代码并提高可读性。

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

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

相关文章

Java17 --- SpringCloud之Nacos

目录 一、下载nacos并运行 1.1、创建9001微服务作为提供者 1.2、创建80微服务作为消费者 二、naocs配置中心规则与动态刷新 2.1、创建3377微服务 2.2、在nacos中创建配置文件 三、nacos数据模型之Namespace-Group-Datald 3.1、DatalD方案 3.2、Group方案 3.3、Name…

python软件开发遇到的坑-相对路径文件读写异常,不稳定

1. os.chdir()会影响那些使用相对路径读写文件的程序,使其变得不稳定,默认情况下,当前工作目录是主程序所在目录,使用os.chdir会将当前工作目录修改到其他路径。 资料: python相对路径写对了却报错是什么原因呢&#…

蜜蜂收卡系统 加油卡充值卡礼品卡自定义回收系统源码 前后端开源uniapp可打包app

本文来自:蜜蜂收卡系统 加油卡充值卡礼品卡自定义回收系统源码 前后端开源uniapp可打包app - 源码1688 卡券绿色循环计划—— 一项旨在构建卡券价值再利用生态的社会责任感项目。在当前数字化消费日益普及的背景下,大量礼品卡、优惠券因各种原因未能有效…

mib browser读取mib文件的oid(飞塔防火墙为例)

在配置zabbix监控的时候,配置监控项最为麻烦,一般我们都会套用模板,这种方式比较简单,但是有些设备就是没有现成的zabbix模板,怎么办? 今天我们使用MIB Browser来获取设备SNMP的OID,然后加入zabbix 。 1.什么是MIB Browser SNMP客户端工具MIB Browser, 全名iReasonin…

ARP详解

2.4 ARP 如图2-10所示,当网络设备有数据要发送给另一台网络设备时,必须要知道对方的网络层地址(即IP地址)。IP地址由网络层来提供,但是仅有IP地址是不够的,IP数据报文必须封装成帧才能通过数据链路进行发送…

RuntimeError: Tensor must have a last dimension with stride 1

我在使用torch.view_as_complex将weight转化为复数时,遇到了这样一个错误:由于我在对weight使用view_as_complex之前使用了F.interpolate函数进行了分辨率调整,因此只需对张量weight添加.contiguous()即可。

拿到B端系统设计需求该如何入手,这样做准没错!

在拿到B端系统设计需求后,以下是一些入手的步骤和方法: 理解需求 首先,仔细阅读和理解所提供的需求文档。了解系统的目标、功能需求、用户需求、非功能需求等方面的要求。如果有任何不清楚或模糊的地方,及时与需求提出方进行沟通…

vue+sortablejs来实现列表拖拽——sortablejs的使用

sortablejs官网:https://sortablejs.com/ 最近在看form-builder组件,发现里面有用到sortablejs插件,用于实现拖拽效果。 但是这个官网中的配置,实在是看不懂,太简单又太复杂,不实用。 下面记录一下我的使用&#xff…

Redis 实战之RDB文件结构

RDB文件结构 databases 部分key_value_pairs 部分value 的编码字符串对象列表对象集合对象哈希表对象有序集合对象INTSET 编码的集合ZIPLIST 编码的列表、哈希表或者有序集合 总结AOF持久化的实现命令追加 AOF 文件的写入与同步小结 在本章之前的内容中, 我们介绍了…

C++优先级队列priority_queue模拟实现

priority_queue模拟实现 1. priority_queue介绍2. priority_queue使用2.1 priority_queue显示定义2.2priority_queue接口使用 3. 仿函数4. priority_queue模拟实现4.1 向上调整算法4.2 向下调整算法4.3 实现priority_queue的接口4.4 使用[仿函数](https://legacy.cplusplus.com…

Springboot+Vue项目-基于Java+MySQL的流浪动物管理系统(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…

MCP3008-I/SL 模数转换器ADC SPI接口 模拟信号采集

MCP3008-I/SL 模数转换器ADC 贴片SOIC16 MCP3008-I/SL 是一款模数转换器(ADC),属于 SAR(逐次逼近寄存器)架构的 ADC。它具有以下特点: 8 通道单 ADC 最大采样率:200ksps(千样点每秒…

为什么byte 的取值范围是 [-128,127]

在计算机中,byte(字节)是存储数据的基本单位,通常用8位二进制数字表示一个字节。在字节中,最高位的最左边一位是符号位,用来表示正负号,值为0表示正数,值为1表示负数。 如果将byte定…

URL过滤

什么是URL过滤? URL过滤是一种针对用户的URL请求进行上网控制的技术,通过允许或禁止用户访问某些网页资源,达到规范上网行为和降低安全风险的目的。 URL过滤可以基于URL分类、特定URL等多种方式限制URL访问。 URL过滤的主要作用如下&#xf…

Python Flask框架(一)初识Flask

Flask是使用Python编写的Web微框架。Web框架可以使我们不用关心底层的请求响应处理,更方便高效的编写Web程序。Flask有两个主要依赖,一个是WSGI(Web Server Gateway Interface,web服务器网关接口)工具集,另…

【文献解析】3D高斯抛雪球是个什么玩意

论文地址:https://arxiv.org/abs/2308.04079 项目:3D Gaussian Splatting for Real-Time Radiance Field Rendering 代码:git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive 一、文章概述 1.1问题导向 辐射…

USB3.0接口——(1)基础知识

1.背景 USB 3.0是一种USB规范,该规范由英特尔等公司发起。 USB协议版本 命名约定 USB-IF组织引入命名约定,将端口列为 USB 5 Gbps、USB 10 Gbps、USB 20 Gbps 、USB 40 Gbps,而不使用版本号。获得 USB-IF 认证的 USB 产品的制造商会获得带…

SAP 长文本语言代码维护

在SAP中,我们发现长文本都是有语言代码的,如果需要新增一个语言代码的话,需要通过程序RSCPCOLA进行维护处理 具体实现步骤如下: 1. 输入事务码SE38,输入程序名RSCPCOLA,然后点击执行按钮 2. 维护信函语言…

sklearn的make_blobs函数

make_blobs是一个用于生成随机数据点的实用函数, from sklearn.datasets import make_blobs X,Y make_blobs(n_samples2000,n_features2,centers12,cluster_std0.05,center_box[-5,5],random_state21)n_samples: 要生成的样本数量。centers: 要生成的簇&#xff0…

电子书3D翻页制作技巧大揭秘,轻松将文档转化为逼真仿真书!

随着数字化时代的到来,电子书已成为阅读的主流形式之一。然而,普通的电子书往往缺乏纸质书的质感和互动性,让人感到有些遗憾。今天,将为你揭秘电子书3D翻页制作技巧,让你轻松将文档转化为逼真仿真书! 1.要制…