在Javascript中,当我们执行更高阶函数时,我们维护对元素,索引和可迭代的访问,我们执行函数。例如:
[10,20,30].map(function(element, index, array) {
return elem + 2
}
我们维护对元素,索引和数组的访问。
在Python中,这可能与Python的内置Map,Filter和Reduce方法有关吗?据我所知,内部reduce的回调只能访问当前累积的值和下一个值。请告诉我如何在使用Python映射时保持对索引的访问,就像在Javascript中一样。感谢
答案 0 :(得分:1)
而不是使用map
或filter
,您可以使用enumerate
与{{3}}一起返回(index, element)
元组:
>>> l = [10,20,30]
>>> [i * x for i, x in enumerate(l)]
[0, 20, 60]
当然,您也可以将enumerate
与map
结合使用,但这会导致更复杂的代码:
>>> list(map(lambda x: x[0] * x[1], enumerate(l)))
[0, 20, 60]