enumerate() -- Python

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了enumerate() -- Python相关的知识,希望对你有一定的参考价值。

#!usr/bin/env python
#coding:utf-8
‘‘‘
enumerate()说明:
    1、enumerate()是Python的内置函数;
    2、enumerate字面上是枚举、列举的意思;
    3、对于一个可迭代、可遍历的对象(列表、元组、字符串),enumerate将其组成一个索引序列,利用
        它可以同时获得索引和值;
    4、enumerate多用于for循环中得到计数;
    5、注意:enumerate()返回的是enumerate对象;

‘‘‘

‘‘‘
需求:给定一串数字01098040234,将非0的数字所处的位置及值进行打印输出;
‘‘‘
str1 = 01098040234
def findNotZero(str):
    return ((index,value) for index,value in enumerate(str) if value!=0)

print(findNotZero(str1))

 

 5、注意:enumerate()返回的是enumerate对象--运行结果如下所示

 

<generator object findNotZero.<locals>.<genexpr> at 0x00000223A8416A98>
[Finished in 0.1s]

 

 

#!usr/bin/env python
#coding:utf-8
‘‘‘
enumerate()说明:
    1、enumerate()是Python的内置函数;
    2、enumerate字面上是枚举、列举的意思;
    3、对于一个可迭代、可遍历的对象(列表、元组、字符串),enumerate将其组成一个索引序列,利用
        它可以同时获得索引和值;
    4、enumerate多用于for循环中得到计数;
    5、注意:enumerate()返回的是enumerate对象;

‘‘‘

‘‘‘
需求:给定一串数字01098040234,将非0的数字所处的位置及值进行打印输出;
‘‘‘
str1 = 01098040234
def findNotZero(str):
    return ((index,value) for index,value in enumerate(str) if value!=0)

print(list(findNotZero(str1)))

 

运行结果:

[(1, 1), (3, 9), (4, 8), (6, 4), (8, 2), (9, 3), (10, 4)]
[Finished in 0.1s]

 

 

注意点:

1、enumerate()指定起始下标enumerate(str,1)

2、列表解析式:[expr for iter_var in iterable if cond_expr]

 

enumerate()的优势:

需求:给你一个列表[‘我’,‘是’,‘寒’,‘岳’];现在想要同时将每个列表元素的索引位置及值同时打印输出;

最直接的做法就是:

for i in range(len(list1)):
    print (i,list1[i])

运行结果:

0 我
123 岳
[Finished in 0.2s]

 

上述方法有些累赘,利用enumerate()会更加直接和优美:

list1 = [,,,]
for index,value in enumerate(list1):
    print(index,value)

运行结果:

0 我
123 岳
[Finished in 0.1s]

 

以上是关于enumerate() -- Python的主要内容,如果未能解决你的问题,请参考以下文章

python 内置函数enumerate()

python中enumerate变量类型转换

python中enumerate()函数的用法

python-enumerate-b1

如何在 Python 中对元组列表进行 enumerate()?

enumerate() -- Python