Dada una lista de listas y un rango, la tarea es recorrer cada sublista y eliminar las sublistas que contienen elementos que se encuentran fuera del rango dado.
Ejemplos:
Input : left= 10, right = 17, list = [[0, 1.2, 3.4, 18.1, 10.1], [10.3, 12.4, 15, 17, 16, 11], [100, 10, 9.2, 11, 13, 17.1], ] Output: [[10.3, 12.4, 15, 17, 16, 11]] Input : left= 1, right = 9, list = [[11, 12, 15, 17, 3], [3, 1, 4, 5.2, 9, 19], [2, 4, 6, 7.2, 8.9]] Output: [[2, 4, 6, 7.2, 8.9]]
Método #1: Iterando a través de cada sublista.
# Python code to remove all the # sublist outside the given range # Initialisation of list of list list = [[0,1.2,3.4,18.1,10.1], [10.3,12.4,15,17,16,11], [1000,100,10,3.2,11,13, 17.1], ] # Defining range left, right = 10, 17 # initialization of index b=0 for t in list: a=0 for k in t: if k<left or k>right: a=1 if a==1: list.pop(b) b=b+1 # printing output print(list)
Producción:
[[10.3, 12.4, 15, 17, 16, 11]]
Método #2: Usar la comprensión de listas
# Python code to remove all the # sublist outside the given range # Initialisation of list of list list = [[11, 12, 15, 17, 3], [3, 1, 4, 5.2, 9, 19], [2, 4, 6, 7.2, 8.9]] # Defining range left = 1 right = 9 # Using list comprehension Output = [i for i in list if (min(i)>=left and max(i)<=right)] # Printing output print (Output)
Producción:
[[2, 4, 6, 7.2, 8.9]]
Publicación traducida automáticamente
Artículo escrito por everythingispossible y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA