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

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.xdnf.cn/news/15369.html

相关文章:

  • 字母异位词分组
  • Linux驱动09 --- 环境搭建
  • 计算机毕业设计Java停车场管理系统 基于Java的智能停车场管理系统开发 Java语言实现的停车场综合管理平台
  • 如何检测自动化设备中的直线导轨品质是否优良?
  • UE5多人MOBA+GAS 19、创建升龙技能,以及带力的被动,为升龙技能添加冷却和消耗
  • 【408考研知识点全面讲解计算机学科专业基础综合(408)】——数据结构之排序
  • SELECT ... INTO OUTFILE和LOAD DATA INFILE
  • 请求服务端获取broker的机房归属信息异常
  • 【C#】GraphicsPath的用法
  • ai批量抠图win和mac都可以用
  • 数据库连接池及其核心特点
  • Spring Boot整合MyBatis+MySQL+Redis单表CRUD教程
  • OneCode 3.0 DDD领域模型开放接口:基于DSMFactory的架构解析与实践指南
  • 创建 UIKit 项目教程
  • 浅谈npm,cnpm,pnpm,npx,nvm,yarn之间的区别
  • 周末总结(2024/07/12)
  • 小架构step系列12:单元测试
  • 为什么有些PDF无法复制文字?原理分析与解决方案
  • 知识宇宙-思考篇:AI大模型如何重塑软件开发流程?
  • MCP选型指南:AWS vs Azure vs GCP vs 国内云厂商深度对比
  • openGauss 的列式存储表时遇到的排序和聚合查询性能问题
  • mybatis模糊匹配采用concat与#{},动态sql讲解
  • Flutter、React Native、Uni-App 的比较与分析
  • 80. 删除有序数组中的重复项 II
  • brpc中bthread_start_urgent和tls_task_group详细机制分析
  • 使用python 实现一个http server
  • 传感器WSNs TheDataLinkLayer——X-MAC
  • 基于随机森林的金融时间序列预测系统:从数据处理到实时预测的完整流水线
  • [特殊字符] 实时数据洪流突围战:Flink+Paimon实现毫秒级分析的架构革命(附压测报告)——日均百亿级数据处理成本降低60%的工业级方案
  • 【离线数仓项目】——电商域DWS层开发实战