python-enumrate函数

文章目录

enumerate()是Python内置函数,用于在遍历序列(如列表、元组或字符串)时同时获取索引和值。

基本语法

bash 复制代码
enumerate(iterable, start=0)

1、iterable: 可迭代对象(列表、元组、字符串等)

2、start: 索引的起始值,默认为0

基本用法

基本遍历

bash 复制代码
fruits = ['apple', 'banana', 'cherry']

for index, value in enumerate(fruits):
    print(index, value)

输出:

bash 复制代码
0 apple
1 banana
2 cherry

指定起始索引

bash 复制代码
for index, value in enumerate(fruits, start=1):
    print(index, value)

输出

bash 复制代码
1 apple
2 banana
3 cherry

实际应用场景

需要索引的循环

bash 复制代码
for i, item in enumerate(['a', 'b', 'c']):
    print(f"第{i+1}个元素是{item}")

输出

bash 复制代码
第1个元素是a
第2个元素是b
第3个元素是c

创建字典映射

bash 复制代码
names = ['Alice', 'Bob', 'Charlie']
name_dict = {i: name for i, name in enumerate(names)}
print(name_dict)  

输出:

bash 复制代码
{0: 'Alice', 1: 'Bob', 2: 'Charlie'}

处理文件行号

bash 复制代码
with open('file.txt') as f:
    for line_num, line in enumerate(f, start=1):
        print(f"{line_num}: {line.strip()}")

与range(len())对比

传统方式:

bash 复制代码
fruits = ['apple', 'banana', 'cherry']
for i in range(len(fruits)):
    print(i, fruits[i])

使用enumerate更简洁高效:

bash 复制代码
for i, fruit in enumerate(fruits):
    print(i, fruit)

注意事项

1、enumerate返回的是enumerate对象,可以转换为列表查看:

bash 复制代码
print(list(enumerate(fruits))) 

输出

bash 复制代码
[(0, 'apple'), (1, 'banana'), (2, 'cherry')]

2、在Python中,enumerate比手动维护计数器更Pythonic(更符合Python风格)

3、对于大型迭代,enumerate不会显著增加内存消耗,因为它也是惰性求值的

相关推荐
FfHUCisI7 分钟前
sync.Once 与 sync.Cond 源码与并发控制陷阱
服务器·开发语言·后端·golang
阿钱真强道12 分钟前
21 嵌入式操作系统 | JSON 与 json-c:生成与解析
c语言·开发语言·json·json-c
j7~12 分钟前
【Python】(篇六)《基础语法(函数、列表和元组、字典、文件)》---详解
开发语言·python·文件·函数·字典·编程学习·元组与列表
重生之小比特24 分钟前
【C++进阶】红黑树的实现
java·开发语言·c++
纪念 22925 分钟前
C++算法(一)
开发语言·c++·算法
Frag0ut26 分钟前
Google Chrome 谷歌浏览器 下载安装全攻略
chrome·性能优化·谷歌浏览器·隐私安全·浏览器设置·浏览器下载·新手指南
Wx-bishekaifayuan39 分钟前
springboot户外登山社交小程序19787-计算机课程设计、毕业设计
spring boot·后端·python·spring·elasticsearch·django·课程设计
FYKJ_20101 小时前
springboot刑事案件管理系统03047-计算机课程设计、毕业设计
vue.js·spring boot·python·mysql·typescript·spark·django
Python图像识别2 小时前
18-【2027毕设】YOLO11烟雾检测识别系统 - Python完整源码+PyQt5界面+训练模型+数据集
python·深度学习·yolo·毕业设计·毕设
FYKJ_20102 小时前
springboot助农产品销售商城05829-计算机课程设计、毕业设计
java·spring boot·python·mysql·spark·django