enumerate()
来更高效地编写 Python 循环,使代码更干净、更高效。
你好,世界!你在用Python编程吗?如果你没在循环中用enumerate()
,那你可能还是个Python新手。
遍历列表是很常见的操作,Python 使用简单的 for
循环使得迭代列表变得很容易。然而,如果你在迭代列表时没有合适的工具来同时跟踪索引和元素,你可能会错过更简洁和高效的代码。
嗨,大家好,我的名字是CyCoderX,今天我们来聊聊一些常见的坑以及如何用内置的enumerate()
函数让你的代码瞬间变专业。
zh: 让我们直接跳进去吧!
使用Python和ChatGPT API自动化会议摘要 新手常遇到的问题 1. 使用
range(len())
遍历列表
初学者在遍历列表时通常常用的一种方式是跟踪索引,结合range()
和len()
的使用。
my_list = ['apple', 'banana', 'cherry']
# 对于my_list中的每个索引i:
for i in range(len(my_list)):
# 打印索引i及其对应的my_list中的元素
print(i, my_list[i])
输出:没有输入内容。
0 苹果
1 香蕉
2 樱桃
这个可以运行,但并不理想。你手动处理索引,尽管如此,它只能完成任务。这并不能体现你可能达到的Python技能水平。
2. 步骤:创建一个手动计数器另一种方法是手动创建并递增一个计数器变量。这看起来是这样的:
# 这段代码用于遍历水果列表并打印每个水果及其索引
水果列表 = ['苹果', '香蕉', '樱桃']
计数器 = 0
for 水果 in 水果列表:
print('当前计数:', 计数器, '当前水果:', 水果)
计数器 += 1
输出:
此处为空输出:如有具体内容,此处将提供其翻译。
0 苹果,1 香蕉,2 樱桃(樱桃果)
不过,这可以运作,但显得很笨重且多余。这样做的话,会使你的代码变得过于复杂。
使用Python和ChatGPT API自动化电子邮件回复生成:使用AI自动化来简化电子邮件管理照片由 Mika Baumeister 拍摄,发布于 Unsplash
在项目中使用ChatGPT API 指南:一步一步来 使用enumerate()
——这是 Pythonic 的方式
所以,你应该怎样在迭代列表的同时追踪索引呢?这时就可以用enumerate()
了。这个内置函数帮你自动处理索引,让你的代码更简洁。
# 定义一个包含三种水果的列表,并使用enumerate函数遍历该列表,打印每个元素的索引和值。
my_list = ['apple', 'banana', 'cherry']
for index, item in enumerate(my_list):
print(index, item)
输出:
零 个 苹果
一 个 香蕉
二 个 樱桃
使用 enumerate()
,你可以在每一轮迭代中同时拿到索引和对应的项。这样更简洁易读,而且——最关键的是——这更符合 Python 的风格。
选择适合在线零售的Azure存储解决方案 优化Azure存储以满足在线零售的数据需求你创作开发者内容其实是在帮那些遇到问题的开发者。 — William Imoh
enumerate()
怎么用
enumerate()
函数可以接受一个像列表这样的可迭代对象,在遍历过程中,它会返回索引和对应的项。基本用法例如如下:
enumerate(可迭代的, start=0)
-
iterable : 您想要遍历的序列或集合。
- start : 起始位置(可选,默认为
0
)。
如果你想从不同的数字开始索引,你也可以通过指定 start
参数来实现从不同的数字开始索引。
# 定义一个包含三种水果的列表
fruit_list = ['apple', 'banana', 'cherry']
# 使用enumerate函数遍历列表,从1开始计数
for index, item in enumerate(fruit_list, start=1):
# 打印序号和水果名称
print(f"序号:{index},水果:{item}")
输出: 不需要提供额外的翻译内容。
1 一个苹果(或一根香蕉或一颗樱桃)中的
2 一根香蕉(同上)
3 一颗樱桃
它的灵活性是其中一个原因,当你需要在循环中同时获取索引和项目时,enumerate()
应该是你的首选,因为它可以同时处理索引和项目。
enumerate()
的好处
1. 更简洁的代码
使用 enumerate()
,你可以避免编写不必要的样板代码,如管理计数器或使用 range(len())
。你的代码会更易读、更简洁。
enumerate()
函数清楚地显示你在同时使用索引和项,这让任何读你代码的人都一目了然。这种清晰度在专业编码环境中非常重要。
由于 enumerate()
是一个内置函数,它已被优化以提高性能。虽然手动跟踪索引也可以,但会增加不必要的开销,而 Python 的内置函数正是为了避开这种开销而设计的。
enumerate()
的实用案例:
下面看看几个使用 enumerate()
特别有帮助的常见场景:
当你需要根据索引更新列表中的元素时,使用enumerate()
函数是一个非常实用的方法。
my_list = ['apple', 'banana', 'cherry'] # 这是一个包含三个元素的列表
for index, item in enumerate(my_list): # 使用for循环遍历该列表
if index % 2 == 0: # 如果索引是偶数
my_list[index] = item.upper() # 则将该元素转换为大写
print(my_list) # 最后打印该列表
输出:
结果:
['APPLE', 'Banana', 'CHERRY']
2. 使用索引调试
在调试时,项目的索引和值非常有用。使用 enumerate()
例如,可以轻松地同时在一行中同时打印索引及其值。
my_list = ['apple', 'banana', 'cherry']
for index, item in enumerate(my_list):
print(f"索引 {index}:{item}")
3. 多个列表的操作
当你需要同时处理两个或多个列表时,可以将这两个函数enumerate()
与zip()
结合使用,让代码更符合 Python 风格。这可以使代码更为简洁和优雅。
水果 = ['苹果', '香蕉', '樱桃']
颜色 = ['红', '黄色', '红']
for 索引, (水果, 颜) in enumerate(zip(水果, 颜色)):
print(f"{索引}: {水果} 是 {颜}色。")
输出:
(无内容可译)
0: 苹果是红色的
1: 香蕉是黄的
2: 樱桃也是红色的
NumPy数组的复制与视图:提升内存效率和性能
结束语。
使用 enumerate()
函数不仅可以使您的 Python 循环更简洁,还能提高代码的可读性和可维护性,使代码更容易理解和修改。通过消除手动计数器的使用或繁琐的 range(len())
方法,enumerate()
让您能够专注于逻辑而非机械操作。这正体现了 Python 的核心哲学,即编写既干净又具有表现力的代码,对于希望遵循最佳实践的开发人员来说,enumerate()
函数必不可少。
对于从事大型项目开发的开发者来说,代码清晰度变得至关重要。无论是别人阅读你的代码,还是你自己以后再看,使用 enumerate()
可以让你清楚地知道你在同时遍历索引和项目。这样的小改动能大大减少读取和调试循环时的认知压力,节省时间并减少错误的机会。随着团队的扩大,保持这样的代码规范有助于促进团队合作并减少混乱。
最终,enumerate()
是每个 Python 开发者都应该熟悉的工具。它不仅体现你对 Python 内置功能的掌握,还体现了编写高效、整洁代码的专业态度。不论你是在编写一个小脚本还是参与大型软件项目,使用 enumerate()
都能使你的编码风格更加 Pythonic 和专家级。
照片由 Call Me Fred 在 Unsplash 拍摄
最后的话:谢谢您花时间读这篇文章。
这篇文章由 CyCoderX 在 Medium 上发表。
嘿!我是CyCoderX, 一位热爱构建从头到尾的解决方案的数据工程师。我写的文章涉及Python、SQL、AI、数据工程领域、生活品味以及更多内容!
如果你想看看类似的文章和更新,可以随便看看我的 Medium 个人主页:
点击这里访问CyCoderX的Medium主页: CyCoderX
CyCoderX的数据科学17个故事
跟我一起探索技术、数据以及更多领域的世界!
你觉得这篇文章怎么样?在下面的评论里告诉我……或者在评论框上方告诉我,取决于你的设备!哦,看你用的是什么设备哦!🙃
你可以通过以下方式支持我。- 给这个故事鼓50次掌
- 在评论区留言分享你的想法
- 标出你最喜欢的部分
感谢您加入_Plain English社区!在您离开之前,
- 别忘了给作者点赞👏哦
- 关注我们吧:X | LinkedIn | YouTube | Discord | Newsletter
- 看来我们的其他平台:CoFeed | Differ
- 更多内容请移步 PlainEnglish.io
共同学习,写下你的评论
评论加载中...
作者其他优质文章