Python获取列表元素下标的两种方法及enumerate最佳实践

小林子
小林子
发布时间:2026-10-13| 7人浏览过
原创

本文介绍在Python中遍历列表时获取元素下标的两种常见方式。通过range(len())手动计算索引是基础方法,而使用内置enumerate函数则是更地道、高效的Pythonic写法。文章还解析了enumerate的start参数用法,并指出了随意命名变量及不必要的list转换等常见代码瑕疵,帮助开发者写出更规范的Python代码。

掌握Git是编程领域的基础技能,目前互联网公司普遍采用Git进行团队协作。近期有读者反馈,在周五的面试中恰好被问及Git相关问题,幸好近期进行了学习。虽然Git本身不难掌握,但熟悉它至少能体现一个人的学习能力或对技术趋势的敏感度。若面试者连GitHub的基本概念都不清楚,往往会引发面试官对其专业度的质疑。

针对这一常见面试题进行简要分析。

获取列表元素下标的方法对比

在使用for循环迭代列表时,有时需要同时获取每个元素及其对应的下标。例如,对于列表 numbers = [10, 29, 30, 41],期望的输出格式为 (0, 10),(1, 29),(2, 30),(3, 41)。

实现该需求主要有两种方法,第一种是通过获取列表长度来迭代下标。


for i in range(len(numbers)):
print('({0}, {1})'.format(i, numbers[i]))

使用enumerate函数的最佳实践

第二种方法是直接利用enumerate函数:


numbers = [10, 29, 30, 41]
for index, value in enumerate(numbers):
print(index, value)

后者是更为地道的Python写法。Python之禅中有一条格言指出:There should be on,and preferably only one,obvious way to do it. 这意味着在编写代码时,应优先选择一种且最好是唯一一种显而易见的方式来实现功能。

enumerate的高级用法与文档查阅

内置函数enumerate还可以接收一个可选参数start,用于指定索引的起始值,默认值为0。并非所有读者都知晓此用法,建议遇到新知识时深入查阅官方文档,而非浅尝辄止。学会查阅文档也是重要的学习技能。文档

常见代码质量问题与优化建议

大多数提交的代码能正确回答问题,但也存在部分代码质量问题,例如变量命名随意:


numbers = [10, 29, 30, 41]
for i, j in enumerate(numbers):
print(i, j)

使用i和j这类无实际意义的变量名显得不够专业。有人辩称这仅是练习,但若练习中保持这种态度,很难保证在工作场景中能取用合理的变量名。

另有读者使用list工厂函数返回新列表,这种写法略显多余。特别是在迭代大型列表时,创建新列表会占用额外内存。


numbers = [10,29,30,41]
for i in list(enumerate(numbers)):
print(i,end=' ')

成功往往属于坚持到最后的人。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。