Vérification de l'existence d'éléments de chaîne dans une liste en Python
Cette question recherche une méthode élégante pour déterminer si une chaîne contient un élément d'un élément spécifié list sans utiliser de boucle for. Le code suivant illustre le problème :
<code class="python">extensionsToCheck = ['.pdf', '.doc', '.xls'] for extension in extensionsToCheck: if extension in url_string: print(url_string)</code>
La tentative de l'utilisateur d'utiliser un opérateur logique OR, comme dans C/C , n'a pas réussi à fournir le résultat souhaité.
Solution élégante Utiliser des générateurs et Any
Une solution plus sophistiquée exploite un générateur et la fonction any, qui est évaluée à True dès qu'un élément de la liste est trouvé dans la chaîne :
<code class="python">if any(ext in url_string for ext in extensionsToCheck): print(url_string)</code>
Dans ce code, une expression génératrice produit une série de valeurs booléennes indiquant si chaque élément de extensionsToCheck existe dans url_string. La fonction any renvoie alors True si l'une de ces valeurs booléennes est True.
Attention lors de la vérification de la position finale
Il est important de noter que cette solution ne prend pas en compte la position de la chaîne correspondante dans url_string. Par exemple, si la liste contenait .com et que la chaîne examinée était exemple.company.com, la solution renverrait True même si .com apparaît au milieu de la chaîne.
Si l'emplacement précis du la chaîne correspondante est un problème, comme c'est souvent le cas avec les URL, envisagez d'utiliser la solution fournie par @Wladimir Palant, qui consiste à examiner les extensions de fichiers dans le contexte des URL.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!