Maison >développement back-end >Tutoriel Python >Comment pouvons-nous partitionner efficacement une liste en fonction d'un filtre conditionnel ?

Comment pouvons-nous partitionner efficacement une liste en fonction d'un filtre conditionnel ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-03 15:58:15611parcourir

How Can We Efficiently Partition a List Based on a Conditional Filter?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn