我们在处理编程问题的时候,为了遍历的方便所以创造了迭代器,但是使用无法解决查询元素的下标问题。在二者之间不能兼得,但同时这两种功能我们都是要实现的,在这个时候,
enumerate函数就诞生了。通俗的来讲,通过
enumerate实现的是一个新的迭代器,在功能的使用上兼顾了迭代器和下标,接下来我们看看具体用
enumerate建立新迭代器的方法。
首先介绍的是枚举函数。在我们日常编程的过程中,经常会遇到一个问题。
在
C语言以及一些古老的语言当中是没有迭代器这个概念的,所以我们要遍历数组或者是容器的时候,往往只能通过下标。有了迭代器之后,我们遍历的过程方便了很多,我们可以直接用一个变量去迭代一个容器当中的值。最简单的例子就是数组的遍历,比如我们要遍历items这个数组。我们可以直接:
for item in items:
通过迭代器,我们可以很方便的遍历数组,不需要下标,也不需要计算数组的长度。但是如果我们需要知道循环体中元素的下标怎么办?
下标和迭代器真的只能选其一吗,比如在循环体外加一个变量来记录下标?
idx = 0
for item in items:
operation()
idx += 1
这样解决了问题,但是很繁琐,一点也不简洁,用专业的话说
pythonic(符合Python标准的代码)。为了追求pythonic,于是有了enumerate函数。
用法举例
c = [b for a,b in enumerate('11100101') if b != '0']
print(len(c))
打印结果:
5
enumerate(sequence,[start=0]) 默认是从0开始
example = (('abcd','efgh'))
for i,j in enumerate(example,start=1):
print(i,j)
打印结果为:
1 abcd
2 efgh
以上就是我们用
enumerate函数来创造新的迭代器的方法,同时讲了一下
enumerate的由来和简单使用,还没有完全掌握的朋友,可以看看上面的代码。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python3中哪个库可以实现格式美化?12/07
- ♥ 如何在python中转换类型09/11
- ♥ python输入三个从小到大排序的数字08/22
- ♥ Python定义了两种形式的可变参数11/02
- ♥ python类和函数有什么区别09/06
- ♥ 大数据需要学Python吗?12/30
内容反馈