Filtrer, mapper, réduire avec js et python (il existe également des expressions de flèche, des expressions lambda et des expressions d'inclusion)

introduction

Je crée une application web avec python et ça se mélange toujours, alors prenez note.

JavaScript

Version complète

var orig = [{id: '0000', value: 0},
            {id: '0001', value: 1},
            {id: '0002', value: 2}];
 
// filter
var filtered = orig.filter( function(el,idx,ary) {
  return el.id=='0001';
});
// [{id: '0001', value: 0}]
 
// map
var mapped = orig.map( function(el,idx,ary) {
  return el.value;
});
// [0, 1, 2]
 
// reduce
var reduced = mapped.reduce( function(hist,el,idx,ary) {
  return hist+el;
});
// 3
 
//Réécriture directe
$.each(orig, function(idx,el) {
  el.value += 100;
});
// [{id: '0000', value: 100},
//  {id: '0001', value: 101},
//  {id: '0002', value: 102}]

El est chaque élément, idx est un index et ary est le tableau d'origine. Les idx et ary de filter, map et reduction peuvent être omis.

Type de flèche

// filter
var filtered2 = orig.filter( el => el.id=='0001' );
 
// map
var mapped2 = orig.map( el => el.value );
 
// reduce:expression lambda
var reduced2 = mapped2.reduce( (hist,el) => hist+el );
 
//Réécriture directe
$.each(orig, (idx,el) => { el.value+100 } );

«hist» de réduire est le résultat de l'exécution du calcul jusqu'à présent.

Python

expression lambda

orig = [{'id': '0000', 'value': 0},
        {'id': '0001', 'value': 1},
        {'id': '0002', 'value': 2}]
 
# filter
filtered = filter(lambda el: el['id']=='0001', orig)
 
# map
mapped = map(lambda el: el['value'], orig)
 
# reduce
reduced = reduce(lambda hist,el: hist+el, mapped)

Expression d'inclusion

# filter
filtered2 = [ el for el in orig if el['id']=='0001' ]
 
# map
mapped2 = [ el['value'] for el in orig ]

Autres mises en garde

Comment accéder à l'objet

--JavaScript est ʻobject.key --Python est ʻobject ['key']

À propos des expressions de flèche JavaScript

//Forme basique
function(param1, ..., paramN) { statements }
(param1, ..., paramN) => { statements }
 
//Si vous souhaitez renvoyer la valeur{}Peut être omis.
function(param1, ..., paramN) { return expression; }
(param1, ..., paramN) => { return expression; }
(param1, ..., paramN) => expression
 
//Avec un seul argument()Peut être omis.
(param) => { statements }
param => { statements }

Recommended Posts

Filtrer, mapper, réduire avec js et python (il existe également des expressions de flèche, des expressions lambda et des expressions d'inclusion)
mappe de traitement de chaîne python et lambda
Essayez de créer foldl et foldr avec Python: lambda. Aussi mesure du temps
Élément de mémoire Python efficace 7 Utilisez la notation d'inclusion de liste au lieu de la carte et du filtre
Notation inclusive de Python (à propos de l'expression de liste et de générateur) [supplémentaire]
Que comparez-vous avec Python et ==?
Pages HTML dynamiques créées avec AWS Lambda et Python
Comment écrire à l'aide d'une expression lambda et d'une fonction de filtre et comment écrire à l'aide de la notation d'inclusion de liste
Étudiez l'échange de données Java et Python avec Apache Arrow
Créez des tweets ordinaires comme une flotte avec AWS Lambda et Python