python基础(补充)之 枚举函数:enumerate()
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python基础(补充)之 枚举函数:enumerate(),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2740字,纯文字阅读大概需要4分钟。
内容图文
enumerate() 函数的简单介绍
enumerate() 函数的概念:
- enumerate() 函数:用于将一个可迭代的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
再来看看enumerate() 函数的语法结构:
- enumerate(sequence, [start=0]),其中sequence是一个可迭代序列,start是一个可选参数,表示序列下标的起始位置;
关于enumerate()函数,有以下几点需要注意:
- ① enumerate()函数是Python中的内置函数,可以直接配合for循环使用;
- ② 默认情况下,start参数索引计数器是从零开始计数的,但是你可以将其设置为任意的整数;
- ③ enumerate()函数得到的是多个值,我们需要采用“序列解包”的方式,获取到每一个元素;
可迭代对象和序列解包
可迭代对象
通俗的讲:可迭代指的就是我们可以循环获取其中的每一个元素。某对象可以使用for循环的必要条件是该对象是可迭代的。
你可能还不知道什么是可迭代对象,这里也不过多的去解释,你如果想深入了解它,可以自行下去查资料,但是这里我要讲述 “如何判断一个对象是可迭代对象”。
- 可以通过內置函数isinstance()来判断一个对象是否为可迭代对象。
from collections.abc import Iterable
print(isinstance("梁某人", Iterable))
# True
print(isinstance([1,True,2.3],Iterable))
# True
print(isinstance(1, Iterable))
# False
print(isinstance(range(10), Iterable))
# True
通过上述代码演示,我们就知道哪些对象是可迭代对象,可以使用for循环,哪些对象不是可迭代对象,也不能使用for循环。
在Python基础中,我们还将到了一个“序列”的概念,其实序列也是一种可迭代对象,其中列表( list)、元组( tuple)、字符串( str)等都是序列,因此它们也都是可迭代对象,也就都可以配合enumerate()函数使用了。
序列解包
通俗的说:就是一次将多个变量赋值给多个值。很简单,不要想的太高深,我们简单举个例子你就知道了。
x, y = (12, 54)
print(x) # 12
print(y) # 54
结果如下:
enumerate() 函数的简单使用
该函数最常就是配合for循环使用,我们就以此为例,为大家演示enumerate() 函数的用法。
需求:打印出班级中大于18岁的同学名字;
如果使用普通的for循环:
i = 0
name = ["张三", "李四", "王五"]
lis = [13, 22, 43]
for element in lis:
if element >= 18:
print(i, name[i], lis[i])
i += 1
结果如下:
如果for循环,配合enumerate()函数使用:
name = ["张三", "李四", "王五"]
lis = [13, 22, 43]
for index, value in enumerate(lis):
if value >= 18:
print(index, name[index], value)
结果如下:
普通for循环我也就不多说了。仔细观察for循环+enumerate()函数的搭配使用,序列使用过该函数后,会返回元素下标和元素组合的元组,我们采用序列解包的方式,将其赋值给了index和value,其中index表示lis列表中每个元素的下标,value表示lis列表中每个元素的值,如下图所示:
接着再仔细观察上图,可以发现:enumerate()函数默认序列第一个元素的下标为0,这个也是和Python中序列的元素访问一致。但是有时候,我们就想让第一个元素的下标变为1,第二个元素的下标变为2,怎么办呢?
从上图可以看出:enumerate()函数中有一个start参数,很好的帮我们解决了上述问题。
其实关于这个函数的用法,大家不必说要钻的多深,掌握它最通俗的用法就够了,相信它未来会帮助你很多。
内容总结
以上是互联网集市为您收集整理的python基础(补充)之 枚举函数:enumerate()全部内容,希望文章能够帮你解决python基础(补充)之 枚举函数:enumerate()所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。