Résultat de la fonction any avec des extensions
Quel est le résultat de cette utilisation de la fonction any :
extensions = ['.py', '.txt', '.jpg', '.txt', '.docx']
resultat = any('py' in ext for ext in extensions)
print(resultat)
J'ai indiqué False car any renvoie True si au moins une occurence est True.
Je pensais à un piège car on cherche 'py' et le texte dans extension est '.py'.
Faut-il comprendre que le script va parcourir les éléments et comprendre que dans '.py', il y a 'py' ?
Salut Bertrand,
En effet c'est le but de cette façon de faire avec any. Si tu cherches une équivalence précise, tu peux juste utiliser l'opérateur in :
'.py' in ['.py', '.txt', '.jpg', '.txt', '.docx'] # Renvoie True
Mais quand tu veux vérifier un équivalence partielle (comme ici), alors on peut utiliser cette façon de faire avec any. On parcours chaque extension et on vérifie si la chaîne qu'on recherche est contenue dans chaque chaîne parcourue. Si on a au moins 1 True, alors any retourne True.
Je te donne un autre exemple très concret que j'ai fait aujourd'hui justement.
J'ai une liste de mails que je ne souhaite pas récupérer avec mon script. Mais les sujets des mails ne sont pas tout le temps exacts.
J'ai donc cette liste :
addresses_to_exclude = [
"[email protected]",
"[email protected]",
]
Mais parfois l'expéditeur du message n'est pas juste "[email protected]" mais Google Meet <[email protected]>.
Je ne peux donc pas vérifier une équivalence exacte.
J'ai donc utilisé any de la même façon :
# Exemple simplifié
addresses_to_exclude = [
"[email protected]",
"[email protected]",
]
def check_email():
from_email = "Google Meet <[email protected]>"
if any(email in from_email for email in addresses_to_exclude):
return False
return True
J'espère que c'est plus clair :)
Thibault./[email protected]/[email protected]
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte