在 Javascript 中,当我们执行高阶函数时,我们维护对执行该函数的元素、索引和可迭代对象的访问。例如:
[10,20,30].map(function(element, index, array) {
return elem + 2
}
我们维护对元素、索引和数组的访问。
在Python中,这可以通过Python的内置Map、Filter和Reduce方法来实现吗?据我所知,reduce 内部的回调只能访问当前累积值和下一个值。请告诉我,当您像在 Javascript 中一样使用 Python 进行映射时,将如何维护对索引的访问。谢谢
最佳答案
您可以使用 list comprehension 而不是使用 map
或 filter
与 enumerate
返回 (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]
关于javascript - 您可以使用 python 中的映射或其他高阶函数来跟踪索引吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40668895/