Python | Eliminar todas las sublistas fuera del rango dado

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

Deja una respuesta

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