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
Libérer: 2024-12-03 15:58:15
original
615 Les gens l'ont consulté

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)
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal