Programa de Python que filtra filas no vacías de una array

Dado Matrix, el siguiente artículo muestra cómo filtrar todas las filas no vacías de una array. En términos más simples, los códigos proporcionados a continuación devuelven una array después de eliminar las filas vacías. 

Entrada : test_list = [[4, 5, 6, 7], [], [], [9, 8, 1], []] 
Salida : [[4, 5, 6, 7], [9, 8, 1]] 
Explicación : se eliminan todas las filas vacías.
Entrada : test_list = [[4, 5, 6, 7], [], [9, 8, 1], []] 
Salida : [[4, 5, 6, 7], [9, 8, 1]] 
Explicación : se eliminan todas las filas vacías. 

Método 1: usar la comprensión de listas y len()

En esto, verificamos cada fila por su longitud, si su longitud es mayor que 0, esa fila se agrega al resultado.

Python3

# initializing list
test_list = [[4, 5, 6, 7], [], [], [9, 8, 1], []]
  
# printing original lists
print("The original list is : " + str(test_list))
  
# checking for row lengths using len()
res = [row for row in test_list if len(row) > 0]
  
# printing result
print("Filtered Matrix " + str(res))

 Producción:

La lista original es: [[4, 5, 6, 7], [], [], [9, 8, 1], []]

Array filtrada [[4, 5, 6, 7], [9, 8, 1]]

Método 2: Usar filter(), lambda y len()

En esto, filtramos las longitudes de las filas usando filter() y la función lambda. El len() se usa para obtener la longitud.

Python3

# initializing list
test_list = [[4, 5, 6, 7], [], [], [9, 8, 1], []]
  
# printing original lists
print("The original list is : " + str(test_list))
  
# checking for row lengths using len()
# filtering using filter() + lambda
res = list(filter(lambda row: len(row) > 0, test_list))
  
# printing result
print("Filtered Matrix " + str(res))

 Producción:

La lista original es: [[4, 5, 6, 7], [], [], [9, 8, 1], []]

Array filtrada [[4, 5, 6, 7], [9, 8, 1]]

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *