当前位置: 首页 > news >正文

第40讲:Python for-in循环语句使用索引遍历序列

文章目录

    • 方法一:遍历的是序列的元素
    • 方法二:遍历的是序列的索引
    • 方法三:while循环遍历实现
    • 方法四:调用内置函数enumerate实现
      • 1.什么是enumerate函数
      • 2.调用内置函数enumerate实现索引遍历序列

如果在遍历序列的过程中,需要访问元素的索引,例如通过索引去查找指定的元素,中心思想就是遍历索引号,通过每次循环的索引号在序列里找到对应的元素。

方法一:遍历的是序列的元素

在for循环开始前,定义一个初始变量,这个变量的值为0,序列中第一个索引是从0开始,然后循环遍历序列本身,每次循环后都对初始遍历+1,下次循环的时候就可以找序列中的第二个索引对应的元素,每次循环的时候都将索引对应的元素打印出来。

mylist = ['jiangxl', 'K8S', 'DevOps']
index = 0#循环遍历的还是列表中的元素
for elem in mylist:#打印序列中索引对应的元素myformat = 'mylist[{}] ---> {}'print(myformat.format(index, elem))#每次遍历index的值都+1,索引值每次都不同index += 1

效果如下,循环遍历序列中的元素,每次循环时索引号都+1,以获取列表中的每个索引对应的元素,每次循环时将索引对应的元素都打印出来。

image-20220814144315334

方法二:遍历的是序列的索引

for循环遍历的对象是序列中的索引,这个方法主要是通过len函数计算出序列的长度,然后使用range函数根据len函数的结果生产一个序列,这个序列中就包含了序列中所有元素对应的索引号。

循环遍历的是序列包含所有索引的整数序列,因此无需事先声明一个初始变量,每次循环时,自定义变量都会拿到具体的索引号,从而得到索引对应的元素。

mylist = ['jiangxl', 'K8S', 'DevOps']#通过len函数得到列表的长度,然后使用range函数根据这个长度创建出一个整数序列,在这个序列中包含列表的所有索引号,循环遍历这个整数序列
for index in range(len(mylist)):myformat = 'mylist[{}] ---> {}'#打印本次循环的索引号,以及索引对应的元素print(myformat.format(index, mylist[index]))

image-20220814144315334

方法三:while循环遍历实现

在while循环中,也可以去遍历序列,我们根据索引去遍历序列中的元素。

首先定义一个初始变量0,作为第一个索引号,然后使用while循环判断一个条件,当初始值小于序列长度时,则打印当前循环的索引号,以及索引号在列表中对应的元素,并且每次循环都为初始变量+1。

mylist = ['jiangxl', 'K8S', 'DevOps']
index = 0#当index的值小于列表的长度时,开始循环
while index < len(mylist):myformat = 'mylist[{}] ---> {}'print(myformat.format(index, mylist[index]))index += 1

image-20220814144315334

方法四:调用内置函数enumerate实现

1.什么是enumerate函数

enumerate函数可以将一个有序序列(如列表、元组、字符串)组合成一个带索引元素、元素本身的元组,enumerate函数返回值是一个迭代器对象,可以通过list函数转换成列表格式。

使用enumerate函数,可以手动指定索引的起始值

enumerate函数的语法格式:

enumerate(序列, 起始索引值)

将一个列表通过enumerate函数转换成带有索引、元素的对象。

1)enumerate函数返回值是一个迭代器对象

mylist = ['jiangxl', 'K8S', 'DevOps']
print(enumerate(mylist))#输出结果:<enumerate object at 0x000001B83AB6ACC0>

2)可以通过list函数将enumerate返回值转换为列表

print(list(enumerate(mylist)))#输出结果:[(0, 'jiangxl'), (1, 'K8S'), (2, 'DevOps')]

可以看到enumerate函数会将序列中每个元素对应的索引都放在一个元组中,每个元组里只有两个元素,第一个元素是索引,第二个元素是序列元素的本身。

image-20220814151949224

3)还可以指定索引的起始值

指定索引的起始值为1。

print(list(enumerate(mylist, 1)))#输出结果:print(list(enumerate(mylist, 1)))

此时序列的第一个元素的索引就是从1开始。

image-20220814152134674

2.调用内置函数enumerate实现索引遍历序列

enumerate函数对序列重组后返回的结果是一个列表,在列表中的每一个元素都是元组,且每个元组中有2个元素,基于这种情况,我们就可以运用字典items方法的遍历方式。

循环遍历enumerate函数的返回结果(索引、元素组合成的列表),在for循环中定义两个自定义变量,每次遍历获取列表中的一个元素,这个元素就是元组,元组中的第一个元素赋值给自定义变量1,第二个元素赋值给自定义变量2。

mylist = ['jiangxl', 'K8S', 'DevOps']for index,elem in list(enumerate(mylist)):myformat = 'mylist[{}] ---> {}'print(myformat.format(index, elem'''
代码解释:list(enumerate(mylist))的结果为[(0, 'jiangxl'), (1, 'K8S'), (2, 'DevOps')]for循环遍历list(enumerate(mylist))的结果,每次遍历得到列表中的一个元组元素,第一次为:(0, 'jiangxl'),第二次为: (1, 'K8S'),第三次为:(2, 'DevOps')按照元素的多变量赋值的特性,每次遍历的代码就是:index,elem = (0, 'jiangxl'),以此类推......元组中的第一个元素赋值给变量index,元组中第二个元素赋值给变量elem最后每次循环打印对应的变量值
'''                          

image-20220814144315334

enumerate函数返回值是一个迭代器对象,虽然我们看不懂,但是Python解释器能够读懂,因此我们也可以在遍历时不将其转换成列表,也是可以遍历的。

mylist = ['jiangxl', 'K8S', 'DevOps']for index,elem in enumerate(mylist):myformat = 'mylist[{}] ---> {}'print(myformat.format(index, elem
http://www.lryc.cn/news/64739.html

相关文章:

  • 如何用Jmeter压测Netty的Echo服务之自定义Jmeter的Java Sampler
  • GPT3.5之运用之检查模型是否满足条件
  • 【TCP为什么需要粘包和拆包】
  • Python | 人脸识别系统 — 姿态检测
  • 为什么说网络安全行业是IT行业最后的红利?
  • 谷粒商城二十四Sentinel限流熔断降级
  • STM32-HAL-SPI-W25Q128FV简单读写测试(2)
  • 网易一面:如何设计线程池?请手写一个简单线程池?
  • 网络安全之密码学
  • 第14章 项目采购管理
  • Vite+Vue下的多页面入口配置
  • ChatGPT背后的打工人:你不干,有的是AI干
  • 【Access】Access:SQL 语句汇总
  • 【小样本分割 2022 ECCV】SSP
  • Friendlycore增加inodes数量
  • Latex 定理和证明类环境(amsthm)和(ntheorm)的区别
  • Yolov8改进---注意力全家桶,小目标涨点
  • [Linux]网络连接、资源共享
  • 来上海一个月的记录、思考和感悟
  • 学校信息化管理系统通常包含哪些功能?
  • Java时间类(三) -- Calendar()(日历类)
  • 【五一创作】QML、Qt Quick /Qt中绘制圆形
  • 【软考数据库】第七章 关系数据库
  • 《SpringBoot中间件设计与实战》第1章 什么是中间件
  • spring常用的事务传播行为
  • 【Python】什么是爬虫,爬虫实例
  • JavaScript学习笔记(三)
  • 文鼎创智能物联云原生容器化平台实践
  • 深入了解SpringMVC框架,探究其优缺点、作用以及使用方法
  • Git教程(一)