标签: reduce

查找列表的平均值

我必须在Python中找到列表的平均值.到目前为止这是我的代码

l = [15, 18, 2, 36, 12, 78, 5, 6, 9]
print reduce(lambda x, y: x + y, l)
Run Code Online (Sandbox Code Playgroud)

我已经得到它所以它将列表中的值加在一起,但我不知道如何将它分成它们?

python reduce lambda average list

423
推荐指数
14
解决办法
109万
查看次数

如何在Python 3中使用filter,map和reduce

filter,map并且reduce在Python 2中完美地工作.这是一个例子:

>>> def f(x):
        return x % 2 != 0 and x % 3 != 0
>>> filter(f, range(2, 25))
[5, 7, 11, 13, 17, 19, 23]

>>> def cube(x):
        return x*x*x
>>> map(cube, range(1, 11))
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]

>>> def add(x,y):
        return x+y
>>> reduce(add, range(1, 11))
55
Run Code Online (Sandbox Code Playgroud)

但是在Python 3中,我收到以下输出:

>>> filter(f, range(2, 25))
<filter object at 0x0000000002C14908>

>>> map(cube, range(1, 11))
<map object at 0x0000000002C82B70> …
Run Code Online (Sandbox Code Playgroud)

python reduce functional-programming filter python-3.x

292
推荐指数
5
解决办法
25万
查看次数

Javascript减少了对象数组

说我想要a.x为每个元素求和arr.

arr = [{x:1},{x:2},{x:4}]
arr.reduce(function(a,b){return a.x + b.x})
>> NaN
Run Code Online (Sandbox Code Playgroud)

我有理由相信ax在某些时候是不确定的.

以下工作正常

arr = [1,2,4]
arr.reduce(function(a,b){return a + b})
>> 7
Run Code Online (Sandbox Code Playgroud)

我在第一个例子中做错了什么?

javascript reduce functional-programming node.js

190
推荐指数
8
解决办法
15万
查看次数

缩小,折叠或扫描(左/右)?

什么时候应该使用reduceLeft,reduceRight,foldLeft,foldRight,scanLeftscanRight

我想要一个直觉/概述他们的差异 - 可能有一些简单的例子.

reduce scala fold scala-collections

177
推荐指数
3
解决办法
7万
查看次数

NameError:名称'reduce'未在Python中定义

我正在使用Python 3.2.试过这个:

xor = lambda x,y: (x+y)%2
l = reduce(xor, [1,2,3,4])
Run Code Online (Sandbox Code Playgroud)

并得到以下错误:

l = reduce(xor, [1,2,3,4])
NameError: name 'reduce' is not defined
Run Code Online (Sandbox Code Playgroud)

尝试打印reduce到交互式控制台 - 出现此错误:

NameError: name 'reduce' is not defined
Run Code Online (Sandbox Code Playgroud)


reduce在Python 3.2真的删除?如果是这样的话,还有什么选择呢?

python reduce python-3.2

176
推荐指数
3
解决办法
10万
查看次数

对象上的Javascript reduce()

有一个很好的Array方法reduce()可以从Array中获取一个值.例:

[0,1,2,3,4].reduce(function(previousValue, currentValue, index, array){
  return previousValue + currentValue;
});
Run Code Online (Sandbox Code Playgroud)

实现对象的最佳方法是什么?我想这样做:

{ 
    a: {value:1}, 
    b: {value:2}, 
    c: {value:3} 
}.reduce(function(previous, current, index, array){
  return previous.value + current.value;
});
Run Code Online (Sandbox Code Playgroud)

但是,Object似乎没有reduce()实现任何方法.

javascript arrays reduce object

158
推荐指数
6
解决办法
17万
查看次数

折叠与减少之间的区别?

试图学习F#,但在尝试区分折叠减少时感到困惑.折叠似乎做同样的事情,但需要额外的参数.是否存在这两种功能存在的合理原因,或者它们是否适合具有不同背景的人?(例如:C#中的字符串和字符串)

以下是从示例中复制的代码段:

let sumAList list =
    List.reduce (fun acc elem -> acc + elem) list

let sumAFoldingList list =
    List.fold (fun acc elem -> acc + elem) 0 list

printfn "Are these two the same? %A " 
             (sumAList [2; 4; 10] = sumAFoldingList [2; 4; 10])
Run Code Online (Sandbox Code Playgroud)

reduce f# functional-programming fold

115
推荐指数
4
解决办法
3万
查看次数

什么是'pythonic'相当于函数式编程的'fold'函数?

在Haskell中实现类似以下内容的最惯用方法是什么:

foldl (+) 0 [1,2,3,4,5]
--> 15
Run Code Online (Sandbox Code Playgroud)

或者它在Ruby中的等价物:

[1,2,3,4,5].inject(0) {|m,x| m + x}
#> 15
Run Code Online (Sandbox Code Playgroud)

显然,Python提供了reduce函数,这是fold的实现,完全如上所述,然而,有人告诉我,'pythonic'编程方式是避免使用lambda术语和高阶函数,在可能的情况下更喜欢列表推导.因此,有没有一种首选的方法来折叠Python中的列表或类似列表的结构,而不是reduce函数,或者是reduce实现这一目的的惯用方法?

python reduce functional-programming list fold

108
推荐指数
6
解决办法
8万
查看次数

注入与红宝石中的减少相同的东西?

我看到他们在这里被记录在案.它们是一样的吗?为什么Ruby有这么多别名(比如数组的map/collect)?非常感谢.

ruby reduce alias inject

108
推荐指数
2
解决办法
3万
查看次数

如何在JavaScript中映射/缩小/过滤Set?

有没有办法在JavaScript中使用map/ reduce/ filter/ etc a Set或者我必须自己编写?

这是一些合理的Set.prototype扩展

Set.prototype.map = function map(f) {
  var newSet = new Set();
  for (var v of this.values()) newSet.add(f(v));
  return newSet;
};

Set.prototype.reduce = function(f,initial) {
  var result = initial;
  for (var v of this) result = f(result, v);
  return result;
};

Set.prototype.filter = function filter(f) {
  var newSet = new Set();
  for (var v of this) if(f(v)) newSet.add(v);
  return newSet;
};

Set.prototype.every = function every(f) {
  for (var …
Run Code Online (Sandbox Code Playgroud)

javascript reduce set ecmascript-6

100
推荐指数
3
解决办法
3万
查看次数