Je suis capable d'utiliser Il y a 2 listes : la version de travail que j'ai écrit à l'aide de Comment utiliser j'ai eu l'erreur " Peut-on perdre une lumière sur cela? p> p> mappe code> et
somme code> pour atteindre cette fonctionnalité, mais comment utiliser
réduire code>?
A code>,
B code>, ils ont le même nombre de valeurs. Je veux calculer p>
mappe code> est p>
réduire code> alors? J'ai écrit: p>
typeError:" float 'objet est désabonnement code> ". P>
6 Réponses :
Le premier argument de la fonction Lambda est la somme jusqu'à présent et le deuxième argument est la prochaine paire d'éléments:
Je le ferais de cette façon (je ne pense pas que vous avez besoin de Lambda) ... Cela semble également légèrement plus explicite. Zip AB, multipliez-les et résumez les termes. P> p>
+1, bien que somme (x * y pour x, y dans zip (a, b)) code> serait aussi bien
une solution utilisant Réduire code> et
mappe code>,
Des difficultés à réduire l'activité lorsque vous avez une carte incorrecte.
Prenons l'expression:
carte est la transformation. Nous en avons besoin pour convertir les tuples en puis, si vous souhaitez exprimer donc, voici exemple : p> valeur = somme (carte (Lambda (x, y): x * y, zip (a, b))) code> p>
somme code> via
Réduire code> - il On ressemblera à: p>
On dirait que vous voulez un produit intérieur. Utilisez un produit intérieur. https://docs.scipy.org/doc/numpy/ Référence / générée / NUMPY.INNER.HTML
a = np.arange(24).reshape((2,3,4)) b = np.arange(4) np.inner(a, b)
Il est bon que vous mentionniez "produit intérieur", car cela nous donne des antécédents mathématiques et conceptuels.
une mise à jour La possibilité de déballer les paramètres de tuple a été supprimée dans Python 3 Strong> .x p> donc la solution p> peut vous donner une erreur de syntaxe: p> à Travaillez sur Python 2.x et 3.x Strort>, vous pouvez from functools import reduce
a = [1,2,3]
b = [1,4,8]
value = reduce(lambda sum, xy: sum + xy[0]+xy[1], zip(a,b), 0)
print("result:", value)
Votre Lambda prend deux tuples à deux éléments. Cela fonctionne bien lorsque vous réduisez les deux premiers éléments de votre liste, mais la prochaine réduction fonctionnera à la suite de votre Lambda (qui est un flotteur) et l'élément suivant de la liste (qui est un tuple) et votre Lambda peut 't gérer cela. Votre Lambda doit prendre un numéro et un tuple et semer le numéro avec une valeur initiale (comme la réponse d'Antonakos »).