当前位置: 首页 > news >正文

python-enumrate函数

文章目录

  • 基本语法
  • 基本用法
    • 基本遍历
    • 指定起始索引
  • 实际应用场景
    • 需要索引的循环
    • 创建字典映射
    • 处理文件行号
  • 与range(len())对比
  • 注意事项

enumerate()是Python内置函数,用于在遍历序列(如列表、元组或字符串)时同时获取索引和值。

基本语法

enumerate(iterable, start=0)

1、iterable: 可迭代对象(列表、元组、字符串等)

2、start: 索引的起始值,默认为0

基本用法

基本遍历

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

输出:

0 apple
1 banana
2 cherry

指定起始索引

for index, value in enumerate(fruits, start=1):print(index, value)

输出

1 apple
2 banana
3 cherry

实际应用场景

需要索引的循环

for i, item in enumerate(['a', 'b', 'c']):print(f"第{i+1}个元素是{item}")

输出

第1个元素是a
第2个元素是b
第3个元素是c

创建字典映射

names = ['Alice', 'Bob', 'Charlie']
name_dict = {i: name for i, name in enumerate(names)}
print(name_dict)  

输出:

{0: 'Alice', 1: 'Bob', 2: 'Charlie'}

处理文件行号

with open('file.txt') as f:for line_num, line in enumerate(f, start=1):print(f"{line_num}: {line.strip()}")

与range(len())对比

传统方式:

fruits = ['apple', 'banana', 'cherry']
for i in range(len(fruits)):print(i, fruits[i])

使用enumerate更简洁高效:

for i, fruit in enumerate(fruits):print(i, fruit)

注意事项

1、enumerate返回的是enumerate对象,可以转换为列表查看:

print(list(enumerate(fruits))) 

输出

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

2、在Python中,enumerate比手动维护计数器更Pythonic(更符合Python风格)

3、对于大型迭代,enumerate不会显著增加内存消耗,因为它也是惰性求值的

http://www.dtcms.com/a/275639.html

相关文章:

  • NO.3数据结构栈和队列|顺序栈|共享栈|链栈|顺序队|循环队列|链队|双端队列|括号匹配|中缀表达式转后缀|后缀表达式求值
  • JavaScript代码段注入:动态抓取DOM元素的原理与实践
  • GitHub 操作指南:项目协作与自动化工作流实践
  • 【第五节】部署http接口到ubuntu server上的docker内
  • 开源 Arkts 鸿蒙应用 开发(七)数据持久--sqlite关系数据库
  • OSPFv3-一二类LSA
  • 创建 UIKit 项目教程
  • 前端开发中的输出问题
  • 新手向:使用Python将多种图像格式统一转换为JPG
  • 【学习笔记】Linux命令
  • JavaWeb(苍穹外卖)--学习笔记05(MD5)
  • LangChain极速入门:用Python构建AI应用的新范式
  • [特殊字符]LabelMe标注转PaddleSeg数据集:多类掩码自动生成+配置文件输出(附完整Python脚本)
  • Apache Iceberg数据湖高级特性及性能调优
  • 玩转rhel9 Apache
  • linux 系统找出磁盘IO占用元凶 —— 筑梦之路
  • Java零基础笔记12(Java编程核心:面向对象编程高级{常用API、GUI编程})
  • PyTorch多层感知机模型构建与MNIST分类训练
  • 【BurpSuite 2025最新版插件开发】基础篇10(完):日志记录与调试
  • 请求服务端获取broker的机房归属信息异常
  • 剑指offer56_数组中唯一只出现一次的数字
  • JavaScript加强篇——第七章 浏览器对象与存储要点
  • NLP:RNN文本生成案例分享
  • 关于 验证码系统 详解
  • S7-200 SMART PLC:硬件、原理及接线特点全解析
  • Transformer基础
  • Linux驱动09 --- 环境搭建
  • 零基础 “入坑” Java--- 九、类和对象(二)
  • 【YOLOv8-obb部署至RK3588】模型训练→转换RKNN→开发板部署
  • 详解梯度消失和梯度爆炸(反向传播)?