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

Python 中 enumerate(s) 和 range() 的对比

一、enumerate(s) 是什么?

for i, c in enumerate(s):...
  • enumerate(s) 是一个内置函数,用于在遍历可迭代对象时,同时获得元素的索引和值
  • 它返回的是一个**(index, element)** 元组。
  • 常用于遍历字符串、列表、元组等时,如果你既想拿到下标,又想拿到值,就用 enumerate()

例子:

s = 'abc'
for i, c in enumerate(s):print(i, c)

输出:

0 a
1 b
2 c

二、range() 是什么?

for i in range(len(s)):...
  • range(n) 是一个生成整数序列的函数,通常用于按下标访问容器。
  • 它不直接给你元素,只给你索引(整数)。
  • 如果你需要拿到值,必须手动访问:s[i]

例子:

s = 'abc'
for i in range(len(s)):print(i, s[i])

输出一样:

0 a
1 b
2 c

三、总结对比表

对比点

enumerate(s)

range(len(s))

是否返回元素值

✅ 返回 (索引, 元素值)

❌ 只返回索引,需手动 s[i] 获取值

可读性

✅ 更直观、语义清晰

⚠️ 略繁琐(尤其访问元素需要 s[i]

是否依赖索引访问

❌ 不依赖索引访问

✅ 必须依赖索引访问

适用范围

适合遍历时需要“下标 + 元素值”

适合只需要索引或配合 s[i] 使用


✅ 总结建议

  • 如果你在遍历一个字符串、列表等时,同时需要索引和元素 —— 用 enumerate()简洁、优雅
  • 如果你只是基于索引操作(如双指针、窗口处理) —— range() 会更通用。
http://www.dtcms.com/a/276697.html

相关文章:

  • 博途多重背景、参数实例--(二)
  • 分布式系统高可用性设计 - 缓存策略与数据同步机制
  • 飞算JavaAI:重新定义Java开发效率的智能引擎
  • Cell2location maps fine-grained cell types in spatial transcriptomics 文章解析
  • 基于Python Keras 实践大全
  • STP生成树协议
  • 堆内存的详细结构以及java中内存溢出和排查方式
  • Jinja2模板引擎技术在dify中的应用方法
  • Python基于Django的WEB服务统一身份认证协议的设计与实现【附源码、文档说明】
  • 3 c++提高——STL常用容器(一)
  • 【理念●体系】路径治理篇:打造可控、可迁移、可复现的 AI 开发路径结构
  • 【一起来学AI大模型】RAG系统组件:检索器(LangChain)
  • 深度学习-LeNet5-AlexNet
  • ZeroNews 版本升级预告!
  • 【PMP备考】敏捷专题 - 敏捷概述
  • CPU 与存储器连接方式的深入理解
  • Java使用Langchai4j接入AI大模型的简单使用(三)--输入文字生成图片
  • C++结构体数组应用
  • 我自建服务器部署了 Next.js 全栈项目
  • hot100 hot75 栈、队列题目思路
  • os.machine()详解
  • 开阳630HV100芯片的外设配置
  • 如何重置被入侵服务器的Root密码?并且提高服务器安全?
  • 《当技术遇见毁灭:rm -rf的哲学隐喻与现实警示》
  • 【八股消消乐】Kafka集群 full GC 解决方案
  • pytorch深度学习—RNN-循环神经网络
  • 服务端高效处理拖拽排序
  • [创业之路-502]:企业管理层 - 什么是企业经营,什么是企业管理?什么是业务?
  • [Token]Token merging for Vision Generation
  • 2025全网最详细的软件测试面试八股文