Partitionnement efficace des listes basé sur un filtrage conditionnel
Considérez la nécessité de diviser une liste en deux sous-listes en fonction d'une condition. Une approche naïve impliquerait de parcourir la liste deux fois, une fois pour chaque sous-liste. À la recherche d'une alternative efficace et élégante, nous explorons plusieurs options.
Une approche consiste à parcourir manuellement la liste et à ajouter dynamiquement chaque élément à la sous-liste appropriée en fonction de la vérification conditionnelle. Ceci est démontré dans le code ci-dessous :
good, bad = [], [] for x in mylist: (bad, good)[x in goodvals].append(x)
Dans ce code, l'expression (mauvaise, bonne) est évaluée comme mauvaise ou bonne en fonction de la valeur booléenne de x dans goodvals. La méthode append() de la sous-liste sélectionnée est ensuite invoquée pour ajouter l'élément actuel.
En éliminant le besoin de plusieurs itérations et en utilisant des compréhensions de liste concises, cette approche offre à la fois des avantages en termes de performances et de lisibilité du code par rapport aux deux- mise en œuvre de l'itération.
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!