Python n’est pas JavaScript. Cette fois-ci, je vais vous montrer un exemple de l’équivalent en Python des fonctions some() et every() de JavaScript.
Les exemples que je donne traitent à la fois des valeurs primitives et des objets.
L’équivalent en Python de la fonction some() de JavaScript
L’équivalent en Python de la fonction some() de JavaScript est any().
|
|
L’équivalent en Python de la fonction every() de JavaScript
L’équivalent en Python de la fonction every() de JavaScript est all().
|
|
Considérations relatives aux performances
Ces deux fonctions s’arrêtent prématurément, tout comme leurs équivalents en JavaScript :
any()s’arrête au premier résultat vrai,all()s’arrête au premier résultat faux.
Je vous recommande d’utiliser des expressions génératrices (entre parenthèses) plutôt que des compréhensions de liste (entre crochets) pour bénéficier de l’arrêt prématuré.
all(x > 0 for x in data) s’évalue de manière paresseuse.
all([x > 0 for x in data]) construit d’abord la liste entière, gaspillant ainsi de la mémoire et du temps.
Quelques mises en garde à connaître
- Avec des itérables vides, retenez ce qui suit :
any([])renvoieFalse,all([])renvoieTrue. Cela correspond au comportement de JavaScript mais prend les gens au dépourvu — le fait queall([])soitTrueest une vérité vide de sens. - Il n’y a pas d’accès par index en Python, contrairement à ses homologues JavaScript. Si vous avez besoin de l’index, utilisez
enumerate(), comme nous l’avons vu dans de nombreux articles précédents de cette série :any(val > 10 for i, val in enumerate(data)). - Il n’existe pas de paramètre de prédicat intégré, vous avez donc toujours besoin d’une expression de générateur.
- Il existe des différences de vérité entre Python et JavaScript, car ces deux langages de programmation utilisent des valeurs fausses différentes.
0,« »,None,[],{}sont tous faux en Python. En JS,[]et{}sont vrais. Cela a de l’importance si vous utilisez simplementany(items)sans condition explicite.
Suivez-moi !
Merci d’avoir lu cet article. Assurez-vous de me suivre sur X, de vous abonner à ma publication Substack et d’ajouter mon blog à vos favoris pour ne pas manquer les prochains articles.
Crédit : Photo de Pixabay sur Pexels.