[PYTHON] Notation d'inclusion de dictionnaire en JavaScript (ES6)

Je veux réaliser une notation d'inclusion de dictionnaire qui peut être facilement appliquée avec Python avec JavaScript

La notation d'inclusion de liste et la notation d'inclusion de dictionnaire de Python sont pratiques, n'est-ce pas? Pour les déclarations qui ont tendance à être redondantes

Notation d'inclusion de liste

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

Notation d'inclusion de dictionnaire

>>> {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}

C'est un coup.

Je savais que si j'essayais de le réaliser avec JavaScript, je pourrais réaliser la notation d'inclusion de liste en utilisant map et filter, mais comme j'ai pu savoir comment écrire la notation d'inclusion de dictionnaire, je laisserai un mémorandum.

Notation d'inclusion de liste dans JavaScript (ES6)

Si vous vérifiez la notation d'inclusion de liste avant la notation d'inclusion de dictionnaire, dans l'exemple ci-dessus

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

Peut être traité avec Python

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

Quelque chose qui contient une instruction if, comme, sera redondant,

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

Il peut être écrit sous la forme.

Notation d'inclusion de dictionnaire en JavaScript (ES6)

C'est une notation d'inclusion de dictionnaire préférée, mais dans l'exemple Python ci-dessus

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

Il peut être écrit sous la forme. Généraliser

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

Il devient. C'est beaucoup plus redondant que Python, mais je pense qu'il existe encore plus d'opportunités de l'écrire de manière plus concise que d'utiliser l'instruction for.

référence

Recommended Posts

Notation d'inclusion de dictionnaire en JavaScript (ES6)
Génération de combinaisons ordinales par JavaScript
Remplacez la valeur du dictionnaire par Python> update ()
Charger plusieurs fichiers JavaScript avec PyWebView
Python: ecc avec Jose alg = ES512
Donner des options de type de dictionnaire avec python-argparse