Filtern, Zuordnen, Reduzieren mit js und Python (Es gibt auch Pfeilausdrücke, Lambda-Ausdrücke und Einschlussausdrücke)

Einführung

Ich mache eine Webanwendung mit Python und es mischt sich immer, also mach dir eine Notiz.

JavaScript

Vollversion

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
 
//Direktes Umschreiben
$.each(orig, function(idx,el) {
  el.value += 100;
});
// [{id: '0000', value: 100},
//  {id: '0001', value: 101},
//  {id: '0002', value: 102}]

El ist jedes Element, idx ist ein Index und ary ist das ursprüngliche Array. Die IDX und ARY von Filter, Map und Reduce können weggelassen werden.

Pfeiltyp

// filter
var filtered2 = orig.filter( el => el.id=='0001' );
 
// map
var mapped2 = orig.map( el => el.value );
 
// reduce:Lambda-Ausdruck
var reduced2 = mapped2.reduce( (hist,el) => hist+el );
 
//Direktes Umschreiben
$.each(orig, (idx,el) => { el.value+100 } );

hist of redu ist das Ausführungsergebnis der bisherigen Berechnung.

Python

Lambda-Ausdruck

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)

Einschlussausdruck

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

Andere Vorsichtsmaßnahmen

So greifen Sie auf das Objekt zu

--JavaScript ist object.key

Informationen zu JavaScript-Pfeilausdrücken

//Grundform
function(param1, ..., paramN) { statements }
(param1, ..., paramN) => { statements }
 
//Wenn Sie den Wert zurückgeben möchten{}Kann ausgelassen werden.
function(param1, ..., paramN) { return expression; }
(param1, ..., paramN) => { return expression; }
(param1, ..., paramN) => expression
 
//Mit einem Argument()Kann ausgelassen werden.
(param) => { statements }
param => { statements }

Recommended Posts

Filtern, Zuordnen, Reduzieren mit js und Python (Es gibt auch Pfeilausdrücke, Lambda-Ausdrücke und Einschlussausdrücke)
Python String Processing Map und Lambda
Versuchen Sie, Foldl und Foldr mit Python: Lambda zu machen. Auch Zeitmessung
Effektives Python-Memo Element 7 Verwenden Sie die Listeneinschlussnotation anstelle von Karte und Filter
Inklusive Notation von Python (über Liste und Generatorausdruck) [zusätzlich]
Was vergleichst du mit Python und ==?
Dynamische HTML-Seiten mit AWS Lambda und Python
Schreiben mit Lambda-Ausdruck und Filterfunktion und Schreiben mit Listeneinschlussnotation
Untersuchen Sie den Java- und Python-Datenaustausch mit Apache Arrow
Machen Sie mit AWS Lambda und Python gewöhnliche Tweets flottenartig