tutorial tablas read panda hacer funciones español curso crear con python list elements

python - tablas - Eliminar elementos de la lista en función de la condición



read text pandas python (2)

Tengo una lista de listas: [word, good freq, bad freq, change_status]

list_1 = [[''good'',100, 20, 0.2],[''bad'', 10, 0, 0.0],[''change'', 1, 2, 2]]

Me gustaría eliminar de la lista todos los elementos que no cumplan una condición.

Por lo tanto, si change_status > 0.3 and bad_freq < 5 , me gustaría eliminar los elementos correspondientes.

Entonces la lista_1 sería modificada como,

list_1 = [[''good'',100, 20, 0.2],[''bad'', 10, 0, 0.0]]

¿Cómo hago selectivamente eso?


Utilice la función de filter con una función adecuada.

list_1 = filter(lambda x: x[3] <= 0.3 and x[2] < 5, list_1)

Manifestación:

In [1]: list_1 = [[''good'',100, 20, 0.2],[''bad'', 10, 0, 0.0],[''change'', 1, 2, 2]] In [2]: filter(lambda x: x[3] <= 0.3 and x[2] < 5, list_1) Out[2]: [[''bad'', 10, 0, 0.0]]

¡Tenga en cuenta que el bien no satisface su condición ( 20 < 5 es falso) aunque lo haya dicho en su pregunta!

Si tiene muchos elementos, puede usar la función equivalente de itertools:

from itertools import ifilter filtered = ifilter(lambda x: x[3] <= 0.3 and x[2] < 5, list_1)


list_1 = [[''good'',100, 20, 0.2],[''bad'', 10, 0, 0.0],[''change'', 1, 2, 2]] list_1 = [item for item in list_1 if item[2] >= 5 or item[3] >= 0.3]

También puede usar if not (item[2] < 5 and item[3] < 0.3) para la condición si lo desea.