重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
10年的灵璧网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都营销网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整灵璧建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“灵璧网站设计”,“灵璧网站推广”以来,每个客户项目都认真落实执行。
以下是 enumerate() 方法的语法:
enumerate(sequence, [start=0])
sequence -- 一个序列、迭代器或其他支持迭代对象。
start -- 下标起始位置。
返回 enumerate(枚举) 对象。
以下展示了使用 enumerate() 方法的实例:
普通的for循环:
for 循环使用 enumerate():
如果要统计文件的行数,可以这样写:
这种方法简单,但是可能比较慢,当文件比较大时甚至不能工作。
可以利用enumerate():
[1] Python3 enumerate() 函数
[2] python enumerate用法总结-竹聿Simon
大家如若有兴趣,欢迎朋友,可以加交流群:692-858-412一起学习
两个区别很明显:
def enumerate(sequence, start=0):
n = start
for elem in sequence:
yield n, elem
n += 1
首先看enumerate返回的是个iterator
in的话参考文档:(下面摘录)
(翻译)
对于定义了__contains__()方法的用户自定义类,x in y为真当且仅当y.__contains__(x)为真。
对于没有定义__contains__()但定义__iter__()的用户自定义类,x in y为真如果某个值z在迭代y时满足x == z。 如果迭代过程中抛出异常,就好像是in抛出那个异常一样。
最后,尝试旧式的迭代协议:如果一个类定义了__getitem__(),x in y为真当且仅当有一个非负的整数索引i使得x == y[i], 且更小的索引不会引发IndexError异常。(如果引发了其它异常,则像是in引发了该异常)。
not in操作符定义为取与in相反的真值。
enumerate(x,y)函数是把元组tuple、字符串str、列表list里面的元素遍历和索引组合,其用法与range()函数很相似,
下面示例enumerate(x,y)用法以及range(x)相似的用法,但是,enumerate(x,y)函数在遍历excel等时,可以实现与人视觉了解到的认识更好的理解。
enumerate(x,y)中参数y可以省略,省略时,默认从0开始,
如示例一:
list_words=["this","is","blog","of","white","mouse"]
for idx,word in enumerate(list_words):
print(idx,word)
打印结果:
使用range()函数遍历实现:
list_words=["this","is","blog","of","white","mouse"]
for i in range(len(list_words)):
print(i,list_words[i])
打印结果:
自定义开始索引号:
示例二:
list_words=["this","is","blog","of","white","mouse"]
for idx,word in enumerate(list_words[1:],2):#也可以写成for idx,word in enumerate(list_words,start=2):
print(idx,word)
打印结果:
从上面示例中可以看出,enumerate(x,y)中x是需要遍历的元组tuple、字符串str、列表list,可以和切片组合使用,
y是自定义开始的索引号,根据自己的需要设置开始索引号。