[PYTHON] Notation zur Aufnahme von Wörterbüchern in JavaScript (ES6)

Ich möchte eine Wörterbucheinschlussnotation realisieren, die mit Python mit JavaScript einfach angewendet werden kann

Listeneinschlussnotation und Wörterbucheinschlussnotation von Python sind praktisch, nicht wahr? Für Aussagen, die tendenziell redundant sind

Listeneinschlussnotation

>>>  [i * 2 for i in range(10)]
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

Wörterbucheinschlussnotation

>>> {i: i * 2 for i in range(10)}
{0: 0, 1: 2, 2: 4, 3: 6, 4: 8, 5: 10, 6: 12, 7: 14, 8: 16, 9: 18}

Es ist ein Schuss.

Ich wusste, dass ich, wenn ich versuchen würde, es mit JavaScript zu realisieren, die Listeneinschlussnotation mithilfe von Karte und Filter realisieren könnte, aber da ich wissen konnte, wie man die Wörterbucheinschlussnotation schreibt, werde ich ein Memorandum hinterlassen.

Listeneinschlussnotation in JavaScript (ES6)

Wenn Sie die Listeneinschlussnotation vor der Wörterbucheinschlussnotation im obigen Beispiel überprüfen

[...Array(10).keys()].map((d) => {return d * 2});

Kann mit Python verarbeitet werden

>>> [i * 2 for i in range(10) if i % 2 == 0]
[0, 4, 8, 12, 16]

Etwas, das eine if-Anweisung enthält, wie z. B., wird überflüssig.

[...Array(10).keys()].filter((d) => d % 2).map((d) => d * 2);

Es kann geschrieben werden als.

Notation zur Aufnahme von Wörterbüchern in JavaScript (ES6)

Es ist eine bevorzugte Wörterbuch-Einschlussnotation, aber im obigen Python-Beispiel

[...Array(10).keys()].reduce((obj, x) => Object.assign(obj, { [x]: x * 2 }), {})

Es kann geschrieben werden als. Verallgemeinern

array.reduce((obj, x) => Object.assign(obj, { [key_maker(x)]: value_maker(x) }), {})

Es wird. Es ist viel redundanter als Python, aber ich denke, es gibt immer noch mehr Möglichkeiten, es präziser zu schreiben als die for-Anweisung.

Referenz

Recommended Posts

Notation zur Aufnahme von Wörterbüchern in JavaScript (ES6)
Generierung von Ordnungskombinationen durch JavaScript
Ersetzen Sie den Wörterbuchwert durch Python> update ()
Laden Sie mehrere JavaScript-Dateien mit PyWebView
Python: ecc mit Jose alg = ES512
Geben Sie mit python-argparse Optionen für Wörterbuchtypen an