You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在Python的map函数中获取lambda的迭代序号?

在Python的map中获取迭代索引的方法

当然可行,这里有两种实用的实现方式:

方式一:用enumerate(最推荐)

enumerate是Python专门用来给序列元素添加索引的内置工具,它会把data转换成包含(索引, 元素)元组的迭代器。你只需要在lambda里取出元组里的索引和元素,传给mappingFunction就行:

list(map(lambda item: mappingFunction(item[1], item[0]), enumerate(data)))

要是觉得索引和元素的位置不够直观,也可以用zip配合range实现类似效果,但enumerate更简洁:

list(map(lambda val, idx: mappingFunction(val, idx), data, range(len(data))))

方式二:用itertools.count生成计数器

如果需要自定义索引的起始值(比如从1开始),可以用itertools.count创建一个自增的计数器,每次调用next()拿到当前索引:

from itertools import count

counter = count(start=0)  # 可以修改start来设置起始索引
list(map(lambda p: mappingFunction(p, next(counter)), data))

注意:这个计数器是有状态的——如果重复遍历对应的map对象,计数器会继续累加不会重置,所以只适合单次迭代的场景。

内容的提问来源于stack exchange,提问作者Phate

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 10:55:18