vacia una tuplas sacar por llenar listas lista funciones elementos crear comprensión agregar python list count elements

tuplas - sacar elementos de una lista python



¿Contar los elementos de la lista/tupla que son diferentes a las variables? (10)

Tengo una lista o / y tupla:

MyVar = [0,0,0,0,1,0,0,0,0]

Y quiero contar elementos en esto que son diferentes de 0 .

¿Como hacer eso?


Con reducir de functools:

from functools import reduce reduce((lambda x, y: x + (y>0)), MyVar, 0)


Lo siguiente debería funcionar:

>>> MyVar = [0,0,0,0,1,0,0,0,0] >>> sum(map(bool, MyVar)) 1

Convertirá la lista en una lista de booleanos, con el valor True si un elemento es distinto de cero. Luego sumará todos los elementos implícitamente considerando que True tiene el valor 1 y False tiene el valor 0.


No es necesario generar listas, simplemente:

len(MyVar) - MyVar.count(0)


No es tan eficiente como cualquiera de las respuestas anteriores, pero simple y directo de todos modos

myVar = [0,0,0,0,1,0,0,0,0] count = 0 for var in myVar: if var != 0: count += 1


Obtenga la longitud de la lista secundaria de todos los elementos que no son 0

MyVar = [0,0,0,0,1,0,0,0,0] len([x for x in MyVar if x != 0]) >> 1


Pruebe con filter() :

>>> my_var = [0, 0, 0, 0, 1, 0, 0, 0, 0] >>> result = filter(lambda x: x > 0, my_var) [1] >>> print(len(result)) 1


Puede hacer una sum sobre una expresión de generador condicional que no requiere ninguna lista intermedia ni operaciones aritméticas innecesarias:

>>> sum(1 for element in MyVar if element != 0) 1

o como lo señala @ Jean-François Fabre:

>>> sum(1 for element in MyVar if element) 1

En caso de que MyVar solo contenga números, esto cuenta el número de valores distintos de cero.


Tu podrías intentar:

>>> len(filter(lambda x: x != 0, MyVar)) 1


Usando la suma del iterador:

sum(x != 0 for x in MyVar)


f = sum([1 for x in MyVar if x!= 0])

Una línea :)