我想重写一个python
代码来计算max
的累积结果。我参考了numpy文档
输入:[7200,7050,7300,7500,7440,7200,7300,7280,7400]
输出:[7200, 7200, 7300, 7500, 7500, 7500, 7500, 7500, 7500]
我知道我可以在一个循环中完成,但如果可能的话,我正在寻找一个紧凑的单行解决方案
类似的东西或多或少是内联的:
var max = 0;
var input = [7200, 7050, 7300, 7500, 7440, 7200, 7300, 7280, 7400];
var output = input.map(function(e) {
return max > e ? max : max = e;
});
console.log(output);
受Pierre答案的启发,这里有另一个带有地图的单线解决方案
var input = [7200, 7050, 7300, 7500, 7440, 7200, 7300, 7280, 7400];
var output = input.map(function(e, i) {
return Math.max(...input.slice(0, i + 1))
});
console.log(output);
带Array.from()
:的单线解决方案
var arr = [7200, 7050, 7300, 7500, 7440, 7200, 7300, 7280, 7400];
var output = Array.from({length:arr.length}, (el,i) => Math.max(...arr.slice(0,i+1)))
console.log(output);
这里有一个单行替代方案:
a = [7200,7050,7300,7500,7440,7200,7300,7280,7400]
b = [max(a[0:i]) if i > 0 else a[i] for i in range(len(a))]