我想知道在Ruby中是否有办法用Python做我可以做的事情:
sum = reduce(lambda x, y: x + y, map(lambda x, y: x * y, weights, data))
Run Code Online (Sandbox Code Playgroud)
我有两个相同大小的数组与权重和数据,但我似乎无法找到类似于Ruby中的map的函数,减少我的工作.
Lil*_*ard 14
@Michiel de Mare
您的Ruby 1.9示例可以进一步缩短:
weights.zip(data).map(:*).reduce(:+)
Run Code Online (Sandbox Code Playgroud)
另请注意,在Ruby 1.8中,如果需要ActiveSupport(来自Rails),您可以使用:
weights.zip(data).map(&:*).reduce(&:+)
Run Code Online (Sandbox Code Playgroud)
在Ruby 1.9中:
weights.zip(data).map{|a,b| a*b}.reduce(:+)
Run Code Online (Sandbox Code Playgroud)
在Ruby 1.8中:
weights.zip(data).inject(0) {|sum,(w,d)| sum + w*d }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11594 次 |
| 最近记录: |