zoukankan      html  css  js  c++  java
  • 学习python -- 第020天 enumerate函数

    enumerate()简介

    enumerate()是用来遍历一个可迭代容器中的元素,同时通过一个计数器变量记录当前元素所对应的索引值。

    示例如下:

     1 names = ['Bob', 'Alice', 'Guido']
     2 for index, value in enumerate(names):
     3     print(f'{index}: {value}')
     4 
     5 '''
     6 输出
     7 0: Bob
     8 1: Alice
     9 2: Guido
    10 '''

    正如你所看到的,这个循环遍历了 names列表的所有元素,并通过增加从零开始的计数器变量来为每个元素生成索引。

    用 enumerate()让你的循环更加Pythonic

    那么为什么用 enumerate()函数去保存运行中的索引很有用呢?

    有很多从C或Java背景转过来的新的Python开发人员有时使用下面这种 range(len(...))方法来保存运行中每个元素的索引,同时再用 for循环遍历列表:

    1 # 警告: 不建议这么写
    2 
    3 for i in range(len(my_items)):
    4 
    5     print(i, my_items[i])

    通过巧妙地使用 enumerate()函数,就像我在上面的"names"例子中写的那样,你可以使你的循环结构看起来更Pythonic和地道。

    你不再需要在Python代码中专门去生成元素索引,而是将所有这些工作都交给 enumerate()函数处理即可。这样,你的代码将更容易被阅读,而且减少写错代码的影响。(写的代码越多,出错几率越高,尽量将自己的代码看起来简洁,易读,Pythonic,才是我们的追求)

    修改起始索引

    另一个有用的特性是, enumerate()函数允许我们为循环自定义起始索引值。 enumerate()函数中接受一个可选参数,该参数允许你为本次循环中的计数器变量设置初始值:

     1 names = ['Bob', 'Alice', 'Guido']
     2 for index, value in enumerate(names, 1):
     3     print(f'{index}: {value}')
     4 
     5 '''
     6 输出
     7 1: Bob
     8 2: Alice
     9 3: Guido
    10 
    11 '''

    在上面的例子中,我将函数调用改为 enumerate(names, 1),后面的参数1就是本次循环的起始索引,替换默认的0:

    OK,这段代码演示的就是如何将Python的 enumerate()函数默认0起始索引值修改为1(或者其他任何整形值,根据需求去设置不同值)

    认清现实,放弃幻想。 细节决定成败,心态放好,认真学习与工作。
  • 相关阅读:
    ORA-01207: file is more recent than control file
    ORA-08189
    oracle 修改表空间存储路径
    oracle 日志文件管理
    Oracle ClusterwarePRCT-1011 : Failed to run "oifcfg".&nb
    linux:文件打包与压缩
    linux:查找搜索文件
    Python:lambda表达式(匿名函数)
    网络协议各层概述
    linux:用户及文件权限管理
  • 原文地址:https://www.cnblogs.com/jyf2018/p/15149439.html
Copyright © 2011-2022 走看看