javascript - 您可以使用 python 中的映射或其他高阶函数来跟踪索引吗?

标签 javascript python lambda higher-order-functions

在 Javascript 中,当我们执行高阶函数时,我们维护对执行该函数的元素、索引和可迭代对象的访问。例如:

[10,20,30].map(function(element, index, array) {
  return elem + 2  
}

我们维护对元素、索引和数组的访问。

在Python中,这可以通过Python的内置Map、Filter和Reduce方法来实现吗?据我所知,reduce 内部的回调只能访问当前累积值和下一个值。请告诉我,当您像在 Javascript 中一样使用 Python 进行映射时,将如何维护对索引的访问。谢谢

最佳答案

您可以使用 list comprehension 而不是使用 mapfilterenumerate返回 (index, element) 元组:

>>> l = [10,20,30]
>>> [i * x for i, x in enumerate(l)]
[0, 20, 60]

当然,您也可以将 enumeratemap 结合起来,但这会导致更复杂的代码:

>>> list(map(lambda x: x[0] * x[1], enumerate(l)))
[0, 20, 60]

关于javascript - 您可以使用 python 中的映射或其他高阶函数来跟踪索引吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40668895/

相关文章:

python - 从 csv 列中查找最大值

java - 使用 java8 stream().map 传递两个参数来调用服务方法

javascript - 搜索对象数组以匹配来自 mongodb 的 objectId

javascript - 遍历数组并交换邻居

python - 在Python中获取C程序的输出

python - 有没有更有效的方法从另一个数组生成一个数组,规则有点复杂?

c++ - 当一个包含 lambda 的类型被分配时会发生什么?

javascript - 等待aws lambda函数中的forEach循环

javascript - 如何根据内容动态调整 Twitter Bootstrap 模式的大小

javascript - jQuery - 在外部单击时关闭对话框