Cartographie des valeurs de deux tableau en Ruby
Je me demandais si il existe un moyen de faire ce que je peux faire ci-dessous avec Python, Ruby:
sum = reduce(lambda x, y: x + y, map(lambda x, y: x * y, weights, data))
J'ai deux tableaux de même taille avec le poids et les données mais je n'arrive pas à trouver une fonction similaire à la carte en Ruby, réduire j'ai de travail.
Vous devez vous connecter pour publier un commentaire.
@Michiel de Mare
Votre Ruby 1.9 exemple peut être raccourcie un peu plus loin:
Notez également qu'en Ruby 1.8, si vous avez besoin d'ActiveSupport (à partir de Rails de), vous pouvez utiliser:
[1,2,3].zip([4,5,6]).map(:*)
En Ruby 1.9:
En Ruby 1.8:
L'Array.zip la fonction n'est un elementwise combinaison de tableaux. Il n'est pas aussi propre que la syntaxe de Python, mais ici, c'est une approche que l'on pourrait utiliser:
Ruby a une
map
méthode (un.k.un. lecollect
méthode), qui peut être appliquée à toutEnumerable
objet. Sinumbers
est un tableau de nombres, la ligne suivante en Ruby:est l'équivalent de la ligne suivante dans Python:
Pour plus de détails, voir ici ou ici.
Une alternative pour la carte qui fonctionne depuis plus de 2 tableaux:
Cela pourrait aussi être ajouté à la Matrice: