Dada una Array, filtre todas las filas que contienen todos los elementos en el rango de números dado.
Entrada : test_list = [[3, 2, 4, 5, 10], [3, 2, 5, 19], [2, 5, 10], [2, 3, 4, 5, 6, 7]], i, j = 2, 5
Salida : [[3, 2, 4, 5, 10], [2, 3, 4, 5, 6, 7]]
Explicación : 2, 3, 4, 5 todos están presentes arriba filasEntrada : test_list = [[3, 2, 4, 10], [3, 2, 5, 19], [2, 5, 10], [2, 3, 4, 5, 6, 7]], i, j = 2, 5
Salida : [[2, 3, 4, 5, 6, 7]]
Explicación : 2, 3, 4, 5 están todos presentes en las filas anteriores.
Método #1: Usando all() + comprensión de lista
En esto, verificamos la presencia de todos los elementos en el rango usando all() y se usa la comprensión de lista para la tarea de iteración de elementos.
Python3
# Python3 code to demonstrate working of # Filter Rows with Range Elements # Using all() + list comprehension # initializing list test_list = [[3, 2, 4, 5, 10], [3, 2, 5, 19], [2, 5, 10], [2, 3, 4, 5, 6, 7]] # printing original list print("The original list is : " + str(test_list)) # initializing range i, j = 2, 5 # checking for presence of all elements using in operator res = [sub for sub in test_list if all(ele in sub for ele in range(i, j + 1))] # printing result print("Extracted rows : " + str(res))
Producción:
La lista original es: [[3, 2, 4, 5, 10], [3, 2, 5, 19], [2, 5, 10], [2, 3, 4, 5, 6, 7]]
Filas extraídas: [[3, 2, 4, 5, 10], [2, 3, 4, 5, 6, 7]]
Método #2: Usando filter() + lambda + all()
En esto, la tarea de filtrado se realiza usando filter() y la función lambda, all() se usa nuevamente para garantizar la presencia de todos los elementos en el rango.
Python3
# Python3 code to demonstrate working of # Filter Rows with Range Elements # Using filter() + lambda + all() # initializing list test_list = [[3, 2, 4, 5, 10], [3, 2, 5, 19], [2, 5, 10], [2, 3, 4, 5, 6, 7]] # printing original list print("The original list is : " + str(test_list)) # initializing range i, j = 2, 5 # filter() and lambda used to filter elements res = list(filter(lambda sub: all( ele in sub for ele in range(i, j + 1)), test_list)) # printing result print("Extracted rows : " + str(res))
Producción:
La lista original es: [[3, 2, 4, 5, 10], [3, 2, 5, 19], [2, 5, 10], [2, 3, 4, 5, 6, 7]]
Filas extraídas: [[3, 2, 4, 5, 10], [2, 3, 4, 5, 6, 7]]
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