top of page

Comment utiliser la méthode « any() » et la méthode « all() » ?

Updated: Feb 23, 2023

En Python, les méthodes « any() » et « all() » peuvent être considérées comme des opérateurs logiques. La méthode « any() » correspond au « ou » et la méthode « all() » correspond au « et ». Ce sont des méthodes très intéressantes pour contrôler qu’une liste contient ou non un élément particulier. Elles sont utiles également dans la data science.

Le tableau ci-après apporte une idée plus concrète du fonctionnement de ces méthodes :


La méthode « any() » est vraie si l’élément recherché est présent au moins une fois dans un itérable.


La méthode « all() » est vraie si tous les éléments de l’itérable sont égaux à l’élément recherché.


La méthode « any() » :


Voyons dans l’exemple suivant une utilisation de la méthode « any() ».



On a dans cet exemple un dictionnaire qui contient des données sur des étudiants : le prénom de l’étudiant et le groupe auquel il appartient.


On souhaite créer une fonction qui retourne « True » ou « False » selon la présence de « grp01 » dans le dictionnaire.


On crée une fonction qui s’appelle « control_presence_group » qui prend en paramètre un dictionnaire et la valeur à rechercher.


Dans la partie de code : « set(dico[i][1] for i in dico) » on récupère tous les groupes dans un set. Les valeurs à l’intérieur du set seront donc uniques.


Puis dans le code « any(i == values for i in set(… » on test pour chaque élément du set si l’élément est égal à « values ».


Dès que la fonction détecte qu’un élément est présent dans le set, la fonction s’arrête et retourne « True ». L'itérable peut ne pas être entièrement utilisé. Ce qui présente un gain de performance.


Dans cet exemple, la fonction retourne « True ».


Voici ci-après quel est le code derrière la méthode « any() » :



On constate que si l’élément est présent dans l’itérable, la fonction retourne immédiatement « True ». Si l’élément n’est pas dans l’itérable, elle retourne « False ».


La méthode « all() » :


Voyons dans l’exemple suivant une utilisation de la méthode « all() ».



On a dans cet exemple le même dictionnaire que dans l’exemple précédent. Il contient des données sur des étudiants : le prénom de l’étudiant et le groupe auquel il appartient.


On souhaite créer une fonction qui retourne « True » ou « False » selon si le dictionnaire contient bien uniquement « grp01 » ou « grp02 » ou « grp03 » parmi les groupes existants. S’il existe une autre valeur existante, alors la fonction doit retourner « False ».


On crée une fonction qui s’appelle « control_group » qui prend en paramètre un dictionnaire.


Dans la partie de code : « set(dico[i][1] for i in dico) » on récupère tous les groupes dans un set. Les valeurs à l’intérieur du set seront donc uniques.


Puis dans le code « all(i in ["grp01", "grp02", "grp03"] for i in set (… » on test pour chaque élément du set si l’élément égal à « grp01 » ou « grp02 » ou « grp03 ».


Dès que la fonction détecte qu’un élément du set n’est pas égal à « grp01 » ou « grp02 » ou « grp03 » la fonction s’arrête et retourne « False ». Il faut que tous les éléments du set soient égaux à l’une des valeurs précédemment citées pour que la fonction retourne « True ».


De même qu’avec la méthode « any() », l'itérable peut ne pas être entièrement utilisé. Ce qui présente aussi ici un gain de performance.


Dans cet exemple, la fonction retourne « True ».


Voici ci-après quel est le code derrière la méthode « all() » :




Pour chaque élément de l’itérable, si l’élément ne correspond pas à ce qui est recherché, la fonction retourne immédiatement « False ». Sinon la fonction retourne « True ».


Si vous avez besoin de plus de détails, n'hésitez pas à nous contacter ou consulter nos formations.


Vous trouverez également parmi nos posts d'autres articles comme celui-ci qui peuvent vous intéresser.




Comments


bottom of page