• enumerate()


    enumerate说明:

    • enumerate()是python内置函数。
    • 对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值。
    • enumerate多用于在for循环中得到计数

    语法:

     enumerate(sequence, start=0)

    其中,sequence 可以为序列,如 list、set 等,也可以为一个 iterator 或者任何可以迭代的对象,

    默认的 start 为 0,函数返回本质上为一个迭代器,可以使用 next() 方法获取下一个迭代元素。

    需要提醒的是,对于字典的迭代循环, enumerate() 函数并不适合,虽然在使用上并不会提示错误,

    但输出的结果与期望的大相径庭,这是因为字典默认被转换成了序列进行处理。

    要获取迭代过程中字典的 key 和 value,应该使用 iteritems 方法。

    源代码:

    def enumerate(sequence, start=0):
        n = start
        for elem in sequence:
        yield n, elem
        n += 1

    使用对比

    获取序列迭代的索引和值

    推荐使用函数 enumerate() ,主要是为了解决在循环中获取索引以及对应值的问题。

    它具有一定的惰性(lazy),每次仅在需要的时候才会产生一个(index, item)对。

    # 方法一:在每次循环中对索引变量进行自增
    li = ['a', 'b', 'c', 'd']
    index = 0
    for i in li:
        print("index:", index, "element:", i)
        index += 1
    
    
    # 方法二:使用 range() 和 len() 方法结合
    li = ['a', 'b', 'c', 'd', 'e']
    for i in range(len(li)):
        print("index:", i, "element:", li[i])
    
        
    # 方法三:使用 while 循环,用 len() 获取循环次数
    li = ['a', 'b', 'c', 'd', 'e']
    index = 0
    while index < len(li):
        print("index:", index, "element:", li[index])
        index += 1
    
    
    # 方法四:使用 zip() 方法
    li = ['a', 'b', 'c', 'd', 'e']
    for i, e in zip(range(len(li)), li):
        print("index:", i, "element:", e)
    
    
    # 方法五:使用 enumerate() 获取序列迭代的索引和值
    li = ['a', 'b', 'c', 'd', 'e']
    for i, e in enumerate(li):
        print("index:", i, "element:", e)
  • 相关阅读:
    团队作业4——第一次项目冲刺(Alpha版本)4th day
    团队作业4——第一次项目冲刺(Alpha版本)3rd day
    团队作业4——第一次项目冲刺(Alpha版本)2nd day
    团队作业4——第一次项目冲刺(Alpha版本)1st day
    团队作业3——需求改进&系统设计
    团队作业2——需求分析&原型设计
    团队作业1——团队展示
    html、css 【珍藏】
    ms sql 经典语句【珍藏】
    网页前段常用代码及网页自适应
  • 原文地址:https://www.cnblogs.com/qianslup/p/12149037.html
Copyright © 2020-2023  润新知