🍕JavaScript ↔ Python
Les principales opérations sur les collections : filter, map, reduce, groupBy, find, some, every et includes.
1. filter()
// JavaScript
const parisiens = etudiants.filter(e => e.ville === "Paris");
// Python
parisiens = [
e for e in etudiants
if e["ville"] == "Paris"
]
2. map()
// JavaScript
const noms = etudiants.map(e => e.nom);
// Python
noms = [e["nom"] for e in etudiants]
3. reduce()
// JavaScript
const total = etudiants.reduce((acc, e) => {
return acc + e.age;
}, 0);
// Python
total = 0
for e in etudiants:
total += e["age"]
4. groupBy()
// JavaScript
const groupes = Object.groupBy(
etudiants,
e => e.ville
);
// Python
from collections import defaultdict
groupes = defaultdict(list)
for e in etudiants:
groupes[e["ville"]].append(e)
5. find()
// JavaScript
const etudiant = etudiants.find(
e => e.nom === "Alice"
);
// Python
etudiant = next(
(e for e in etudiants if e["nom"] == "Alice"),
None
)
6. some()
// JavaScript
const existe = etudiants.some(
e => e.ville === "Paris"
);
// Python
existe = any(
e["ville"] == "Paris"
for e in etudiants
)
7. every()
// JavaScript
const tousParisiens = etudiants.every(
e => e.ville === "Paris"
);
// Python
tous_parisiens = all(
e["ville"] == "Paris"
for e in etudiants
)
8. includes()
// JavaScript
const villes = ["Paris", "Lyon", "Marseille"];
villes.includes("Paris");
// Python
villes = ["Paris", "Lyon", "Marseille"]
"Paris" in villes
Exemple complet : grouper les étudiants par ville
Données Python :
etudiants = [
{"nom": "Alice", "ville": "Paris"},
{"nom": "Bob", "ville": "Lyon"},
{"nom": "Chloé", "ville": "Paris"},
{"nom": "Alice", "ville": "Marseille"},
{"nom": "Bob", "ville": "Lyon"}
]
Équivalent du reduce JavaScript :
groupes = {}
for e in etudiants:
ville = e["ville"]
if ville not in groupes:
groupes[ville] = []
groupes[ville].append(e)
🛟Mémo
· filter() → [ ... for ... if ... ]
· map() → [ ... for ... ]
· reduce() → for + accumulateur
· groupBy() → defaultdict + for
· find() → next(...)
· some() → any()
· every() → all()
· includes() → in
ficher → lien