Supposons que j'ai une liste contenant un grand nombre d'éléments,
l = [ 1, 4, 6, 30, 2, ... ]
Je veux obtenir le nombre d'éléments de cette liste, où un élément satisfait à une certaine condition. Ma première pensée a été :
count = len([i for i in l if my_condition(l)])
Mais si la liste filtrée comporte également un grand nombre d'éléments, je pense que créer une nouvelle liste pour le résultat filtré n'est qu'un gaspillage de mémoire. Pour l'efficacité, IMHO, l'appel ci-dessus ne peut pas être meilleur que :
count = 0
for i in l:
if my_condition(l):
count += 1
Existe-t-il un moyen fonctionnel d'obtenir le nombre d'éléments qui satisfont à la condition sans générer une liste temporaire ?