网站首页 > 技术文章 正文
在Python中,enumerate是一个内置函数(其实是一个class),用于将一个可遍历的数据对象(如列表、元组或字符串等)组合为一个索引序列,同时列出数据下标和数据本身,一般用在for循环当中。
平常使用中可以替代 range() 和 len()函数,在需要同时遍历索引和元素的情况下,使用 enumerate() 使代码更加简洁和高效。
源代码中大家可以看到enumerate类定义了__iter__ 和__next__魔法方法,之前文章我们也说过定义了这两种方法的可以作为迭代器使用。
函数可以接收2个参数
1)iterable(必须):可迭代对象,如列表、元组、字符串等。
2)start(可选):默认为0。不为0 意思是指定索引的起始值,比如start=1代表索引从1开始而不是从0开始。
使用next()函数打印enumerate函数生成的元素
list1 = ['name', 'age', 'color']
new_iterrable = enumerate(list1)
print(next(new_iterrable))
print(next(new_iterrable))
print(next(new_iterrable))
#结果
(0, 'name')
(1, 'age')
(2, 'color')
可以看出来生成的元素是一个元组类型,第一个元素是索引下标,第二个元素是原序列的内容。
示例:索引从0开始,循环打印元素位置和元素本身
list1 = ['name', 'age', 'color']
for index, value in enumerate(list1):
print(f'Index: {index}, Value: {value}')
#结果
Index: 0, Value: name
Index: 1, Value: age
Index: 2, Value: color
示例:索引从1开始,循环打印元素位置和元素本身
list1 = ['name', 'age', 'color']
for index, value in enumerate(list1,start=1):
print(f'Index: {index}, Value: {value}')
#结果
Index: 1, Value: name
Index: 2, Value: age
Index: 3, Value: color
如果可对象传入的是字典,默认是按照字典的键生成索引序列,除非是给定dict.values()/dict.items()。
dict1= {'name':'wxg', 'age':21, 'color':'black'}
for index, value in enumerate(dict1,start=1):
print(f'Index: {index}, Value: {value}')
#结果
Index: 1, Value: name
Index: 2, Value: age
Index: 3, Value: color
如果传入的对象是集合,大家要注意了 ,因为集合是无序的,得到的索引序列跟实际想要的可能会不一样
set1= {'name','age','color'}
for index, value in enumerate(set1,start=1):
print(f'Index: {index}, Value: {value}')
#结果 原本第二个元素age跑到了第一个位置上。
Index: 1, Value: age
Index: 2, Value: color
Index: 3, Value: name
共勉: 东汉·班固《汉书·枚乘传》:“泰山之管穿石,单极之绠断干。水非石之钻,索非木之锯,渐靡使之然也。”
-----指水滴不断地滴,可以滴穿石头;
-----比喻坚持不懈,集细微的力量也能成就难能的功劳。
----感谢读者的阅读和学习和关注,谢谢大家。
- 上一篇: 引爆你的底层魔法!深入探秘 Python sys 模块冷门技巧
- 下一篇: Python 异常捕获详解
猜你喜欢
- 2025-05-14 Python爬虫实战 | 利用多线程爬取 LOL 高清壁纸
- 2025-05-14 你想不到的,那些在 Python 中输出列表的技巧
- 2025-05-14 python自动化脚本,解放你的双手(4)
- 2025-05-14 Python索引技巧
- 2025-05-14 在 Python 中从列表中删除换行符的多种方法
- 2025-05-14 Python的元组,没想象的那么简单
- 2025-05-14 对Python中序列的个人理解
- 2025-05-14 简单学Python——字符串
- 2025-05-14 python笔记5:序列
- 2025-05-14 Python 技巧讲解:numpy.array 操作使用简单总结(含示例代码)
- 05-27程序员用 Python 爬取抖音高颜值美女
- 05-27YOLO v3、FaceNet和SVM的人脸检测识别系统源码(python)分享
- 05-27「工具推荐」世界上最简单的人脸识别库 44.7 star
- 05-27开源人脸识别系统源码推荐
- 05-27Go 人脸识别教程
- 05-27Python 深度学习之人脸识别(yolo+facenet)
- 05-27简单的Py人脸识别
- 05-27Python编程 - 基于OpenCV实现人脸识别(实践篇)爬虫+人脸识别
- 257℃Python短文,Python中的嵌套条件语句(六)
- 257℃python笔记:for循环嵌套。end=""的作用,图形打印
- 256℃PythonNet:实现Python与.Net代码相互调用!
- 251℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 251℃Python实现字符串小写转大写并写入文件
- 106℃原来2025是完美的平方年,一起探索六种平方的算吧
- 91℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 82℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)