首页 > 编程语言 >Python中利用enumerate()精简循环中的索引和元素访问

Python中利用enumerate()精简循环中的索引和元素访问

时间:2024-04-11 21:45:48浏览次数:26  
标签:Python print list 索引 range enumerate 精简 my

 

Python中,enumerate() 函数是一个内置函数,用于在遍历序列(如列表、元组或字符串)时同时获取每个元素的索引和值。可以使代码更简洁、更易读,特别是在需要索引时。使用 enumerate() 可以避免使用传统的范围(range())和长度(len())组合来访问元素和它们的索引。

参考文档:Python中利用enumerate()精简循环中的索引和元素访问-CJavaPy

1、不使用 enumerate() 函数

不使用enumerate()时,如要在循环中获取每个元素及其索引,一般操作如下,

my_list = ['a', 'b', 'c', 'd']
for i in range(len(my_list)):
    print(f"索引:{i}, 元素:{my_list[i]}")

2、使用enumerate()函数

enumerate()是最常用且推荐的方法,因为它既简洁又直观。可以在循环过程中获取每个元素的索引和值。

my_list = ['apple', 'banana', 'cherry']
for index, item in enumerate(my_list):
print(f"索引:{index}, 元素:{item}")

如要从非零索引开始计数,可以给enumerate()提供一个start参数:

my_list = ['apple', 'banana', 'cherry']
for index, item in  enumerate(my_list, start=1):
    print(f"索引:{index}, 元素:{item}")

3、使用zip()结合range()

如要在循环中同时访问多个列表的元素及其索引,可以使用zip()range()结合的方法。这种方法特别适用于处理多个并行的序列。

my_list = ['apple', 'banana', 'cherry']
my_list2 = ['dog', 'cat', 'bird']
for index, (item1, item2) in enumerate(zip(my_list, my_list2)):
    print(f"索引:{index}, 列表1元素:{item1}, 列表2元素:{item2}")

4、函数说明

1)enumerate() 函数

enumerate() 函数是 Python 中的一个内置函数,非常有用,特别是当你需要在迭代一个序列的同时跟踪元素的索引时。可以将一个可迭代对象(如列表、元组、字符串等)组合为一个索引序列,同时列出数据和数据下标,通常用于 for 循环中。

enumerate(iterable, start=0)

参数

说明

iterable

一个可以迭代的对象,如列表、元组或字符串等。

start

可选参数,指定索引起始值,默认为 0。

enumerate() 函数返回一个枚举对象。这个枚举对象生成由两个元素组成的元组,分别是索引和在可迭代对象中的值。

2)zip() 函数

Python 的 zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表的长度与最短的对象相同。利用 * 操作符,这个函数可以用于解压列表。

# 示例 1: 基本用法
numbers = [1, 2, 3]
letters = ['a', 'b', 'c']
zipped = zip(numbers, letters)
print(list(zipped))  # 输出:[(1, 'a'), (2, 'b'), (3, 'c')]

# 示例 2: 处理不同长度的可迭代对象
numbers = [1, 2, 3]
letters = ['a', 'b']
zipped = zip(numbers, letters)
print(list(zipped))  # 输出:[(1, 'a'), (2, 'b')]

# 示例 3: 解压操作
pairs = [(1, 'a'), (2, 'b'), (3, 'c')]
numbers, letters = zip(*pairs)
print(numbers)  # 输出:(1, 2, 3)
print(letters)  # 输出:('a', 'b', 'c')

3)range() 函数

Python 的 range() 函数是一个不可或缺的内置函数,它生成一个数字序列。这个函数非常实用,常用于循环中迭代指定的次数。

range(start, stop[, step])

参数

描述

start

序列的开始值。如果省略,默认从 0 开始。包括此值。

stop

序列结束的边界,不包括此值。这是一个必须指定的参数。

step

步长,默认值为 1。如果指定了此参数,则必须不为 0

# 只指定 stop 参数
print("只指定 stop 参数:")
for i in range(5):
    print(i, end=' ')
print('\n')

# 指定 start 和 stop 参数
print("指定 start 和 stop 参数:")
for i in range(2, 6):
    print(i, end=' ')
print('\n')

# 同时指定 start、stop 和 step 参数
print("同时指定 start、stop 和 step 参数:")
for i in range(0, 10, 2):
    print(i, end=' ')
print('\n')

# 将 range() 的结果转换为列表
numbers = list(range(5))
print("将 range() 的结果转换为列表:")
print(numbers)

 参考文档:Python中利用enumerate()精简循环中的索引和元素访问-CJavaPy

标签:Python,print,list,索引,range,enumerate,精简,my
From: https://www.cnblogs.com/tinyblog/p/18130078

相关文章

  • python基础-函数(函数参数、返回值、执行、传参、作用域、函数名)
    前言!!!注意:本系列所写的文章全部是学习笔记,来自于观看视频的笔记记录,防止丢失。观看的视频笔记来自于:哔哩哔哩武沛齐老师的视频:2022Python的web开发(完整版)入门全套教程,零基础入门到项目实战1.初识函数函数就是一大堆代码的集合,这一堆的代码再起个名字。#定义函数def函数名......
  • python操作Excel
    windows/linux安装openpyxlpipinstallopenpyxl 查找某Excel中是否存在某字符串text#输入:#file_path:Excel文件名#search_text:要查找的字符串#输出:#查到:[sheetname,cell.row,cell.column]组成的数组#未查到:Nonedeffind_text_in_ex......
  • PYTHON用时变马尔可夫区制转换(MARKOV REGIME SWITCHING)自回归模型分析经济时间序列|附
    全文下载链接:http://tecdat.cn/?p=22617最近我们被客户要求撰写关于MRS的研究报告,包括一些图形和统计输出。本文提供了一个在统计模型中使用马可夫转换模型模型的例子,来复现Kim和Nelson(1999)中提出的一些结果。它应用了Hamilton(1989)的滤波器和Kim(1994)的平滑器  %matplot......
  • 最好用的Python IDE,pycharm保姆级安装教程
    简介由于Python语法简单容易入门,并且Python在办公自动化等领域的功能非常强大,所以现在越来越多非IT行业的人也开始学起了Python,要学习和使用一门编程语言,一个好用的IDE是必不可少的,而对于Python来说,最好的IDE无疑是Pycharm。本文就给大家介绍一下如何从零到一来安装Pycharm。下......
  • Python中的错误处理 - 使用try、except、else和finally进行解释,并附带代码示例
    最近,我的经理委派我创建一个自动报告。我设计的报告非常简单。它包括一些来自数据库的数字和一些基本的数学运算。我很兴奋最终可以向公司展示我的惊人的Python技能。我完成并交付了产品。一切都很顺利。至少,直到大约两周后。我的报告由于除以零错误而随机失败了。来了个笑声轨道......
  • 初识-python因果推断
    初识-DoWhyDoWhy是一个用于因果推理的Python库,支持因果假设的显式建模和测试。DoWhy基于因果推理的统一语言,结合了因果图形模型和潜在结果框架。DoWhy-Github简介和主要特点决策涉及了解不同变量如何相互影响,并预测其中一些变量更改为新值时的结果。例如,给定一个结果变......
  • python psycopg2 包在 macbook 上的安装运行问题
    在macbook上安装python的 psycopg2包后,启动项目会出现类似如下问题:frompsycopg2._psycopgimport(#noqaImportError:dlopen(/Users/Xproject/venv/lib/python3.9/site-packages/psycopg2/_psycopg.cpython-39-darwin.so,0x0002):Library......
  • Perl 和 python 的特点和优缺点
    Perl和Python都是流行的脚本语言,它们在许多方面都有不同的优缺点。Perl的优点:强大的文本处理能力:Perl是一种专门设计用于文本处理的语言,具有强大的正则表达式支持和文本处理功能,使其在处理字符串和文件时非常高效。CPAN生态系统:Perl拥有庞大而活跃的CPAN(Comprehe......
  • stm32采集烟雾和温湿度+ESP8266转发解析+python构造http
      https://www.cnblogs.com/gooutlook/p/16061136.html  http://192.168.1.103/Control_SensorPin?sensor=sensor_all&action=GetDatapython#-*-coding:utf-8-*-importrequestsimporturllib.parse#pipinstallrequestsdefSendHttp():#ht......
  • 精简springboot打包后的体积,提升启动速度
    改动之前5分钟,改动之后[2024-04-1113:43:37.100] [2024-04-1113:44:16.849]这里涉及两个打包插件maven-dependency-plugin和spring-boot-maven-plugin将依赖放置单独的文件夹<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-......