Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 你能在python或其他高阶函数中使用映射跟踪索引吗?_Javascript_Python_Lambda_Higher Order Functions - Fatal编程技术网

Javascript 你能在python或其他高阶函数中使用映射跟踪索引吗?

Javascript 你能在python或其他高阶函数中使用映射跟踪索引吗?,javascript,python,lambda,higher-order-functions,Javascript,Python,Lambda,Higher Order Functions,在Javascript中,当我们执行更高阶的函数时,我们维护对元素、索引和iterable的访问,我们在这些元素上执行函数。例如: [10,20,30].map(function(element, index, array) { return elem + 2 } 我们维护对元素、索引和数组的访问 在Python中,这是否可能与Python内置的Map、Filter和Reduce方法有关?据我所知,reduce中的回调只能访问当前累积值和下一个值。请让我知道,在使用Python进行映射

在Javascript中,当我们执行更高阶的函数时,我们维护对元素、索引和iterable的访问,我们在这些元素上执行函数。例如:

[10,20,30].map(function(element, index, array) {
  return elem + 2  
}
我们维护对元素、索引和数组的访问


在Python中,这是否可能与Python内置的Map、Filter和Reduce方法有关?据我所知,reduce中的回调只能访问当前累积值和下一个值。请让我知道,在使用Python进行映射时,如何像在Javascript中那样维护对索引的访问。谢谢你不用
map
filter
,你可以直接用它返回
(索引,元素)
元组:

>>> l = [10,20,30]
>>> [i * x for i, x in enumerate(l)]
[0, 20, 60]
当然,您也可以将
枚举
映射
相结合,但这会导致更复杂的代码:

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

与使用
map
filter
不同,您可以使用返回
(索引,元素)
元组的:

>>> l = [10,20,30]
>>> [i * x for i, x in enumerate(l)]
[0, 20, 60]
当然,您也可以将
枚举
映射
相结合,但这会导致更复杂的代码:

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

是的,所以答案是,你没有能力使用map、filter或reduce函数,而应该使用enumerate?@JonathanMitchell是的,Python
map
中没有参数等来获取索引或其他类似于Javascript
map
的方法。如果您想同时拥有项目和索引,则可以选择枚举。还要注意的是,在Python中,map或filter不仅适用于列表/数组,而且适用于任何iterables。在上面的例子中,
l
可以很容易地被生成器替代。是的,所以答案是你没有能力使用map、filter或reduce函数,应该使用enumerate来替代吗?@JonathanMitchell是的,Python
map
中没有参数等来获取索引或与Javascript
map
完全相同的其他方法。如果您想同时拥有项目和索引,则可以选择枚举。还要注意的是,在Python中,map或filter不仅适用于列表/数组,而且适用于任何iterables。在上面的例子中,
l
可以很容易地被替换为生成器。