当前位置: 首页 > 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

相关文章:

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

文章目录 方法一&#xff1a;遍历的是序列的元素方法二&#xff1a;遍历的是序列的索引方法三&#xff1a;while循环遍历实现方法四&#xff1a;调用内置函数enumerate实现1.什么是enumerate函数2.调用内置函数enumerate实现索引遍历序列 如果在遍历序列的过程中&#xff0c;需…...

如何用Jmeter压测Netty的Echo服务之自定义Jmeter的Java Sampler

前言 如果想要压测一些三方组件&#xff0c;比如MQ&#xff0c;redis什么的&#xff0c;jmeter本身是不支持的。 本文以开发一个压测netty的echo示例&#xff0c;说明如何自定义jmeter的sampler。 开发 本文以idea示例&#xff0c; 新建工程 打开idea新建一个空的maven工程…...

GPT3.5之运用之检查模型是否满足条件

策略三&#xff1a;要求模型检查是否满足条件* 如果任务做出的假设不一定满足&#xff0c;我们可以告诉模型先检查这些假设&#xff0c;如果不满足&#xff0c;指示并停止执行。你还可以考虑潜在的边缘情况以及模型应该如何处理它们&#xff0c;以避免意外的错误或结果。 在如…...

【TCP为什么需要粘包和拆包】

如今&#xff0c;大半个互联网都建立在 TCP 协议之上&#xff0c;我们使用的 HTTP 协议、消息队列、存储、缓存&#xff0c;都需要用到 TCP 协议——这是因为 TCP 协议提供了可靠性。简单来说&#xff0c;可靠性就是让数据无损送达。但若是考虑到成本&#xff0c;就会变得非常复…...

Python | 人脸识别系统 — 姿态检测

本博客为人脸识别系统的姿态检测代码解释 人脸识别系统博客汇总&#xff1a;人脸识别系统-博客索引 项目GitHub地址&#xff1a;Su-Face-Recognition: A face recognition for user logining 注意&#xff1a;阅读本博客前请先参考以下博客 工具安装、环境配置&#xff1a;人脸…...

为什么说网络安全行业是IT行业最后的红利?

前言 2023年网络安全行业的前景看起来非常乐观。根据当前的趋势和发展&#xff0c;一些趋势和发展可能对2023年网络安全行业产生影响&#xff1a; 5G技术的广泛应用&#xff1a;5G技术的普及将会使互联网的速度更快&#xff0c;同时也将带来更多的网络威胁和安全挑战。网络安全…...

谷粒商城二十四Sentinel限流熔断降级

我们在秒杀服务加的以上所有手段都是为了快&#xff0c;除了快之外&#xff0c;我们还需要保证稳定。 我们即使再快也会有一个极限值&#xff0c;现在假设单机下每秒处理一万个单&#xff0c;这已经是超高的处理能力了&#xff0c;秒杀服务上了五台服务器&#xff0c;有三台掉…...

STM32-HAL-SPI-W25Q128FV简单读写测试(2)

文章目录 一、Flash的基本读写操作1.1 向芯片中的某个地址&#xff08;addr:0x02&#xff09;连续写入不定长的数据并读取代码示例读写流程分析函数分析 1.2 向芯片中的某个地址&#xff08;addr:0x00&#xff09;写入一个数值代码示例&#xff1a;读写流程分析 具体的配置接上…...

网易一面:如何设计线程池?请手写一个简单线程池?

说在前面 在40岁老架构师 尼恩的读者社区(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如极兔、有赞、希音、百度、网易的面试资格&#xff0c;遇到了几个很重要的面试题&#xff1a; 如何设计线程池&#xff1f; 与之类似的、其他小伙伴遇到过的问题还有&#xff1a; …...

网络安全之密码学

目录 密码学 定义 密码的分类 对称加密 非对称加密 对称算法与非对称算法的优缺点 最佳解决办法 --- 用非对称加密算法加密对称加密算法的密钥 非对称加密如何解决对称加密的困境 密钥传输风险 密码管理难 常见算法 对称算法 非对称算法 完整性与身份认证最佳解决…...

第14章 项目采购管理

文章目录 采购管理包括如下几个过程14.2 编制采购计划 462编制采购计划的输出1&#xff09;采购管理计划2&#xff09;采购工作说明书3&#xff09;采购文件 14.2.3 工作说明书&#xff08;SOW&#xff09; 14.3 实施采购 47414.3.2 实施采购的方法和技术 476&#xff08;1&…...

Vite+Vue下的多页面入口配置

我发现多页面入口配置在网上的资料比较乱&#xff0c;今天正好结合我们的开源API分析工具项目&#xff08;APIcat&#xff09;更新情况总结一下。 更新vite.config.js 主要配置的更新是在vite.config.js里面要增加build里的rollupOptions&#xff0c;因为vite底层使用了rollu…...

ChatGPT背后的打工人:你不干,有的是AI干

AI“出圈” 如今&#xff0c;数字技术发展速度惊人&#xff0c;AI提高了社会生产效率&#xff0c;更真切地冲击到原有的生产秩序。 年初AI技术的爆发&#xff0c;让国内看到了进一步降本增效的希望。 国内多家互联网企业相继推出类ChatGPT产品&#xff0c;复旦大学邱锡鹏教授…...

【Access】Access:SQL 语句汇总

目录 一、SQL 的功能 二、考试重点 三、关系的定义 &#xff08;1&#xff09;新建关系 &#xff08;2&#xff09;删除关系 四、SQL 的「数据查询」功能 &#xff08;1&#xff09;基本结构 ① Select 语句的基本结构 ② Select 子句 ③ Where 子句 ④ 空值的处…...

【小样本分割 2022 ECCV】SSP

文章目录 【小样本分割 2022 ECCV】SSP摘要1. 介绍2. 相关工作3. 自支持小样本语义分割3.1 动机3.2 自支持原型-SSM3.3 自适应自支持背景原型-ASBP3.4 自支持匹配-SSL 3. 代码 【小样本分割 2022 ECCV】SSP 论文题目&#xff1a;Self-Support Few-Shot Semantic Segmentation 中…...

Friendlycore增加inodes数量

背景&#xff1a;为Nanopim1安装了core系统&#xff0c;tf卡大小64G&#xff0c;安装后正常扩展到了整个tf卡&#xff0c;但是在安装hass的docker显示磁盘空间不够&#xff0c;最终发现是inode被用完了。其inode只有960K&#xff0c;但是16G卡树莓派系统的inodes都是其两倍。 一…...

Latex 定理和证明类环境(amsthm)和(ntheorm)的区别

最近在写毕业论文&#xff0c;出现了一些定理和证明的环境的问题&#xff0c;问题出现在对两个包的理解程度不够的问题上&#xff1a; \RequirePackage{ntheorem} 1、\newtheorem*{proof}{\hspace{2em}证:} 这个是让证明失去计数原则&#xff0c;该命令不能用于 amsthm 2…...

Yolov8改进---注意力全家桶,小目标涨点

💡💡💡💡💡💡💡💡💡💡注意力全家桶💡💡💡💡💡💡💡💡💡💡💡 基于Yolov8的注意力机制研究,提升小目标、遮挡物、难样本等检测性能...

[Linux]网络连接、资源共享

​⭐作者介绍&#xff1a;大二本科网络工程专业在读&#xff0c;持续学习Java&#xff0c;输出优质文章 ⭐作者主页&#xff1a;逐梦苍穹 ⭐所属专栏&#xff1a;Linux基础操作。本文主要是分享一些Linux系统常用操作&#xff0c;内容主要来源是学校作业&#xff0c;分享出来的…...

来上海一个月的记录、思考和感悟

作者 | gongyouliu 编辑 | gongyouliu 从4月3号早上来上海&#xff0c;到今天差不多整整一个月了&#xff0c;也是自己正式从杭州离职创业&#xff08;我更愿意称之为自由职业者&#xff0c;毕竟我没有招聘全职员工&#xff0c;有两个朋友业余时间在帮我&#xff09;的第一个月…...

学校信息化管理系统通常包含哪些功能?

学校管理信息化是现代教育发展的必然趋势&#xff0c;随着信息技术的飞速发展&#xff0c;学校管理也逐渐地实现了信息化。信息化的学校管理已经成为教育现代化建设的重要内容&#xff0c;也是提高学校教育教学质量和保障学生安全的重要手段。 作为一款低代码开发平台&#xf…...

Java时间类(三) -- Calendar()(日历类)

java.util.Calendar类是一个抽象类,它提供了日期计算的相关功能、获取或设置各种日历字段的方法。 protected Calendar() 构造方法为protected修饰,无法直接创建该对象。1. Calendar()的常用方法: 方法名说明static Calendar getInstance()使用默认时区和区域获取日历vo…...

【五一创作】QML、Qt Quick /Qt中绘制圆形

目录标题 Qt Quick中绘制圆形扩展知识Canvas 模块介绍Shapes 模块介绍 Qt Widgets 中绘制圆形两种方式的比较 Qt Quick中绘制圆形 有多种方法可以在 Qt Quick 中绘制圆形。以下是一些主要方法&#xff1a; 使用 Canvas 元素 使用 Shapes 模块&#xff1a; a. 使用 PathArc 和…...

【软考数据库】第七章 关系数据库

目录 7.1 关系数据库概述 7.2 关系代数 7.3 元组演算与域演算 7.4 查询优化 7.5 关系数据库设计 7.6 模式分解 前言&#xff1a; 笔记来自《文老师软考数据库》教材精讲&#xff0c;精讲视频在b站&#xff0c;某宝都可以找到&#xff0c;个人感觉通俗易懂。 7.1 关系数据…...

《SpringBoot中间件设计与实战》第1章 什么是中间件

一、写在前面 在互联网应用初期,所有用于支撑系统建设的,框架结构、基础工具、业务逻辑、功能服务包括页面展示等,都是在一个系统中开发完成,最终也只是把系统和数据库部署在同一台服务器上。也就是大多数开发者入门所接触到的 “单体” 系统。 那为什么会有中间件这个玩…...

spring常用的事务传播行为

事务传播行为介绍 Spring中的7个事务传播行为: 事务行为 说明 PROPAGATION_REQUIRED 支持当前事务&#xff0c;假设当前没有事务。就新建一个事务 PROPAGATION_SUPPORTS 支持当前事务&#xff0c;假设当前没有事务&#xff0c;就以非事务方式运行 PROPAGATION_MANDATORY…...

【Python】什么是爬虫,爬虫实例

有s表示加密的访问方式 一、初识爬虫 什么是爬虫 网络爬虫&#xff0c;是一种按照一定规则&#xff0c;自动抓取互联网信息的程序或者脚本。由于互联网数据的多样性和资源的有限性&#xff0c;根据用户需求定向抓取相关网页并分析已成为如今主流的爬取策略爬虫可以做什么 你可以…...

JavaScript学习笔记(三)

文章目录 第7章&#xff1a;迭代器与生成器1. 迭代器模式2. 生成器 第8章&#xff1a;对象、类与面向对象编程1. 理解对象2. 创建对象3. 继承&#xff1a;依靠原型链实现4. 类class 第10章&#xff1a;函数1. 函数定义的方式有&#xff1a;函数声明、函数表达式、箭头函数&…...

文鼎创智能物联云原生容器化平台实践

作者&#xff1a;sekfung&#xff0c;深圳市文鼎创数据科技有限公司研发工程师&#xff0c;负责公司物联网终端平台的开发&#xff0c;稳定性建设&#xff0c;容器化上云工作&#xff0c;擅长使用 GO、Java 开发分布式系统&#xff0c;持续关注分布式&#xff0c;云原生等前沿技…...

深入了解SpringMVC框架,探究其优缺点、作用以及使用方法

一、什么是Spring MVC SpringMVC是一种基于Java的Web框架&#xff0c;与Spring框架紧密结合&#xff0c;用于开发具备WebApp特性的Java应用程序。Spring MVC是Spring Framework的一部分&#xff0c;因此它具有与Spring框架相同的特性和理念。 二、SpringMVC的优缺点 1. 优点…...

网站信息向上滚动标签/网页推广怎么做

本文讲解了了AIDL的使用以及Binder通信机制在JAVA层的理解&#xff0c;native层的Binder架构以及binder驱动原理见后续文章的分析。 Binder通信机制&#xff1a;是Android中使用最广泛的进程间通信&#xff08;Inter-Process Communication, IPC&#xff09;机制&#xff0c;是…...

如何制作自己的网址链接/手机优化是什么意思

题目背景 盛况空前的足球赛即将举行。球赛门票售票处排起了球迷购票长龙。 按售票处规定&#xff0c;每位购票者限购一张门票&#xff0c;且每张票售价为50元。在排成长龙的球迷中有N个人手持面值50元的钱币&#xff0c;另有N个人手持面值100元的钱币。假设售票处在开始售票时…...

党校网站建设栏目内容/怎么做一个网页

本篇文章的主要内容是用PHP实现插入排序&#xff0c;简单却经典的一道算法题&#xff0c;不知你是否记得了&#xff0c;快随小编一起回顾一下吧。插入排序基本思路&#xff1a;将数组分为两个区(已排序区和未排序区)&#xff0c;假定数组的第一个元素处于已排序区&#xff0c; …...

嘉兴网站制作套餐/互联网营销课程体系

基于CloudSim Plus的计算卸载仿真设计 1. 前提介绍 仿真框架的实现&#xff0c;主要依托于仿真实体、以及仿真事件&#xff0c;简单介绍如下 1.1 仿真实体 继承CloudSimEntity类(推荐)或者实现SimEntity接口(不建议) public class ExampleEntity extends CloudSimEntity {pu…...

微信商城怎么弄/培训seo哪家学校好

一、基本了解 首先&#xff0c;我们先了解一下什么是SVG格式 百度百科&#xff1a;SVG格式 SVG是一种图像文件格式&#xff0c;它的英文全称为Scalable Vector Graphics&#xff0c;意思为可缩放的矢量图形。它是基于XML&#xff08;Extensible Markup Language&#xff09;&a…...

做网站开发 用什么/网站收录有什么用

iOS 7 春风又绿加州岸&#xff0c;物是人非又一年。WWDC 2013 keynote落下帷幕&#xff0c;新的iOS开发旅程也由此开启。在iOS7界面重大变革的背后&#xff0c;开发者们需要知道的又有哪些呢。同去年一样&#xff0c;我会先简单纵览地介绍iOS7中我个人认为开发者需要着重关注和…...