《编写高质量Python代码的59个有效方法》——第10条:尽量用enumerate取代range

简介:

本节书摘来自华章社区《编写高质量Python代码的59个有效方法》一书中的第10条:尽量用enumerate取代range,作者[美]布雷特·斯拉特金(Brett Slatkin),更多章节内容可以访问云栖社区“华章社区”公众号查看

第10条:尽量用enumerate取代range
在一系列整数上面迭代时,内置的range函数很有用。

对于字符串列表这样的序列式数据结构,可以直接在上面迭代。

当迭代列表的时候,通常还想知道当前元素在列表中的索引。例如,要按照喜好程度打印出自己爱吃的冰淇淋口味。一种办法是用range来做。

与单纯迭代f?lavor_list或是单纯使用range的代码相比,上面这段代码有些生硬。我们必须获取列表长度,并且通过下标来访问数组。这种代码不便于理解。
Python提供了内置的enumerate函数,以解决此问题。enumerate可以把各种迭代器包装为生成器,以便稍后产生输出值。生成器每次产生一对输出值,其中,前者表示循环下标,后者表示从迭代器中获取到的下一个序列元素。这样写出来的代码会非常简洁。

还可以直接指定enumerate函数开始计数时所用的值(本例从1开始计数),这样能把代码写得更短。

要点
enumerate函数提供了一种精简的写法,可以在遍历迭代器时获知每个元素的索引。
尽量用enumerate来改写那种将range与下标访问相结合的序列遍历代码。
可以给enumerate提供第二个参数,以指定开始计数时所用的值(默认为0)。

相关文章
|
23天前
|
机器学习/深度学习 算法 安全
【PSO-LSTM】基于PSO优化LSTM网络的电力负荷预测(Python代码实现)
【PSO-LSTM】基于PSO优化LSTM网络的电力负荷预测(Python代码实现)
|
25天前
|
调度 Python
微电网两阶段鲁棒优化经济调度方法(Python代码实现)
微电网两阶段鲁棒优化经济调度方法(Python代码实现)
|
21天前
|
程序员 测试技术 开发者
Python装饰器:简化代码的强大工具
Python装饰器:简化代码的强大工具
146 92
|
24天前
|
机器学习/深度学习 数据采集 算法
【CNN-BiLSTM-attention】基于高斯混合模型聚类的风电场短期功率预测方法(Python&matlab代码实现)
【CNN-BiLSTM-attention】基于高斯混合模型聚类的风电场短期功率预测方法(Python&matlab代码实现)
|
22天前
|
运维 算法 新能源
基于风光储能和需求响应的微电网日前经济调度(Python代码实现)
基于风光储能和需求响应的微电网日前经济调度(Python代码实现)
|
23天前
|
机器学习/深度学习 算法 调度
【切负荷】计及切负荷和直流潮流(DC-OPF)风-火-储经济调度模型研究【IEEE24节点】(Python代码实现)
【切负荷】计及切负荷和直流潮流(DC-OPF)风-火-储经济调度模型研究【IEEE24节点】(Python代码实现)
|
24天前
|
机器学习/深度学习 算法 调度
【EI复现】基于深度强化学习的微能源网能量管理与优化策略研究(Python代码实现)
【EI复现】基于深度强化学习的微能源网能量管理与优化策略研究(Python代码实现)
|
SQL JSON C语言
Python中字符串的三种定义方法
Python中字符串的三种定义方法
389 2
|
Python
python之字符串定义、切片、连接、重复、遍历、字符串方法
python之字符串定义、切片、连接、重复、遍历、字符串方法
119 0
python之字符串定义、切片、连接、重复、遍历、字符串方法

热门文章

最新文章

推荐镜像

更多