Requisito previo: valores verdaderos frente a falsos en Python
En Python, el valor que se evalúa como Falso se considera un valor Falso. Los valores como lista vacía, diccionario vacío, tupla vacía, conjunto vacío, string vacía, ninguno, falso, 0 se consideran valores falsos. Entonces nuestra tarea es eliminar todos los valores falsos de la lista.
Ejemplos:
Input: [10,20,30,0,False,40,0] Output: [10,20,30,40] Input: [False,None,1,2,3,"Geeks"] Output: [1,2,3,"Geeks"] Input: [[],(),"GeeksForGeeks",26,27] Output: ["GeeksForGeeks",26,27]
Método 1 :
Podemos crear una nueva lista que contendrá valores que no sean Falsy. Recorreremos la lista y comprobaremos si el valor dado es Verdadero o Falso. Si es Truthy, lo agregaremos a la nueva lista. Ahora, para verificar si el valor dado es Verdadero o Falso, podemos usar el método bool() . Este método devuelve True si el valor es Truthy, de lo contrario devuelve False.
Python3
# Python Program to remove falsy values # from List # Function returning the updated list def Remove_Falsy(List): List1 = [] for i in List: if(bool(i)): List1.append(i) return List1; # Original List List1 = [10, 20, 30, 0, False, 40, 0] List2 = [False, None, 1, 2, 3, "Geeks"] List3 = [[], (), "GeeksForGeeks", 26, 27] # printing the updated list after removing Falsy values print("List1[] = ", Remove_Falsy(List1)) print("List2[] = ", Remove_Falsy(List2)) print("List3[] = ", Remove_Falsy(List3))
Producción:
List1[] = [10, 20, 30, 40] List2[] = [1, 2, 3, 'Geeks'] List3[] = ['GeeksForGeeks', 26, 27]
Método 2:
Podemos usar el método filter() para filtrar valores falsos. En el método – filter(function,sequence) , usaremos el método bool() como argumento en el método de filtro. Devolverá verdadero o falso en función de los valores verdaderos o falsos.
Python3
# Python Program to remove falsy values # from List # Function returning the updated list def Remove_Falsy(List): return list(filter(bool,List)) # Original List List1 = [ 10, 20, 30, 0, False, 40, 0] List2 = [ False, None, 1, 2, 3, "Geeks"] List3 = [ [], (), "GeeksForGeeks", 26, 27] # printing the updated list after removing Falsy values print("List1[] = ", Remove_Falsy(List1)) print("List2[] = ", Remove_Falsy(List2)) print("List3[] = ", Remove_Falsy(List3))
Producción:
List1[] = [10, 20, 30, 40] List2[] = [1, 2, 3, 'Geeks'] List3[] = ['GeeksForGeeks', 26, 27]