当前位置: 首页 > 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.lryc.cn/news/586603.html

相关文章:

  • HarmonyOS从入门到精通:动画设计与实现之六 - 动画曲线与运动节奏控制
  • houdini 用 vellum 制作一个最简单的布料
  • 洛谷题解 | UVA1485 Permutation Counting
  • C++结构体数组应用
  • Spring Boot 中使用 Lombok 进行依赖注入的示例
  • 基于springboot+Vue的二手物品交易的设计与实现(免费分享)
  • 2025年亚太杯(中文赛项)数学建模B题【疾病的预测与大数据分析】原创论文讲解(含完整python代码)
  • jieba 库:中文分词的利器
  • JAVA--双亲委派机制
  • 【springcloud】快速搭建一套分布式服务springcloudalibaba(四)
  • 【一起来学AI大模型】RAG系统流程:查询→向量化→检索→生成
  • 【AI News | 20250711】每日AI进展
  • 【TOOL】ubuntu升级cmake版本
  • AI产品经理面试宝典第12天:AI产品经理的思维与转型路径面试题与答法
  • 功耗校准数据PowerProfile测试方法建议
  • 【深度剖析】致力“四个最”的君乐宝数字化转型(下篇:转型成效5-打造数字化生存能力探索可持续发展路径)
  • VUE3 el-table 主子表 显示
  • Transformer基础
  • Openpyxl:Python操作Excel的利器
  • Qt 多线程编程:单例任务队列的设计与实现
  • 五、深度学习——CNN
  • NW728NW733美光固态闪存NW745NW746
  • C语言32个关键字
  • 锁相环初探
  • Python Day11
  • 《Spring 中上下文传递的那些事儿》Part 11:上下文传递最佳实践总结与架构演进方向
  • LeetCode题解---<485.最大连续1的个数>
  • [Token]Token merging for Vision Generation
  • 【嘉立创】四层板设计
  • 当大模型遇见毫米波:用Wi-Fi信号做“透视”的室内语义SLAM实践——从CSI到神经辐射场的端到端开源方案