当前位置: 首页 > 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;的第一个月…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中&#xff0c;Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式&#xff0c;用于在多个 Goroutine 之间传递数据&#xff0c;从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

多模态图像修复系统:基于深度学习的图片修复实现

多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...

Ubuntu Cursor升级成v1.0

0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开&#xff0c;快捷键也不好用&#xff0c;当看到 Cursor 升级后&#xff0c;还是蛮高兴的 1. 下载 Cursor 下载地址&#xff1a;https://www.cursor.com/cn/downloads 点击下载 Linux (x64) &#xff0c;…...