Partitionnement de listes en fonction de conditions
Lors de la division d'une liste en deux en fonction d'une condition donnée, il est tentant de parcourir la liste deux fois, créer deux nouvelles listes comme suit :
good = [x for x in mylist if x in goodvals] bad = [x for x in mylist if x not in goodvals]
Cependant, cette approche nécessite deux itérations distinctes sur la liste, ce qui peut être inefficace. Pour améliorer les performances, pensez à utiliser une itération manuelle avec ajout conditionnel :
good, bad = [], [] for x in mylist: (bad, good)[x in goodvals].append(x)
Dans ce code :
Cette approche évite le besoin de deux itérations distinctes, améliorant les performances en réduisant le nombre de parcours de liste de deux contre un. Il est également considéré comme plus élégant, car il capture la logique de partitionnement de manière concise et lisible.
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!