Utiliser l'expression lambda pour compter les éléments que je suis intéressé par Python
Puis-je utiliser l'expression lambda pour compter les éléments qui m'intéressent?
Par exemple, quand j'ai besoin de compter les éléments dans une liste qui est plus de deux, j'ai essayé ce code qui renvoie 0.
x = [1,2,3]
x.count(lambda x: x > 2)
- Ce code ne retourne rien. Vous avez une erreur de syntaxe. Ne tapez pas de mémoire, copier/coller le code qui manifestement œuvres.
- Pourquoi voulez-vous utiliser
lambda
s? - Votre code de compte combien de fois ce particulier lambda objet est dans la liste.
Vous devez vous connecter pour publier un commentaire.
Note: "plus que" est
>
...=>
n'est pas un opérateur valide.Essayer
sum(y > 2 for y in x)
Ou, comme suggéré par @Jochen, afin de se prémunir contre les non-conventionnelle de la nième partie des classes, utilisez ceci:
sum(1 for y in x if y > 2)
lambda
n'est pas nécessaire.sum(1 for y in x if y > 2)
y > 2
ne devrait pas se déchaînent. Je ne vois pas l'intérêt defloat(y)
. Oui, certains badass classe peut définir les opérateurs de comparaison de retour niTrue
ni1
pour truthy les résultats, dans ce cas, la suggestion de @Jochen [Merci!] évite l'explicitebool()
sum(1 for y in x if y > 2)
est à mon humble avis le meilleur et le plus Pythonic réponse.Vous pouvez essayer tout de suite
ou
ou de la plus belle
Cela ne va pas créer une nouvelle liste.
a
est la variable accumulateur,i
est l'élément de la liste, et le0
à la fin est la valeur initiale de l'accumulateur.