Python: elimina elementos en K distancia con N

Dada una lista, elimine todos los elementos que estén dentro de una distancia K con N.

Entrada : test_list = [4, 5, 9, 1, 10, 6, 13], K = 3, N = 5 
Salida : [9, 1, 10, 13] 
Explicación : 4 se elimina como 5 – 4 = 1 < 3, por lo tanto, está dentro de la distancia.

Entrada : test_list = [1, 10, 6, 13], K = 3, N = 5 
Salida : [1, 10, 13] 
Explicación : 4 se elimina como 5 – 4 = 1 < 3, por lo tanto, está dentro de la distancia.

Método #1: Usar la comprensión de listas

En esto, extraemos solo aquellos elementos que están a una distancia segura por magnitud K a N usando comparaciones usando comprensión de lista.

Python3

# Python3 code to demonstrate working of 
# Remove Elements in K distance with N
# Using list comprehension
  
# initializing list
test_list = [4, 5, 9, 1, 10, 6, 13 ]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing K 
K = 3
  
# initializing N 
N = 5
  
# checking for elements in safe zone with respect to N
res = [ele for ele in test_list if ele < N - K or ele > N + K]
  
# printing result 
print("Filtered elements : " + str(res))
Producción

The original list is : [4, 5, 9, 1, 10, 6, 13]
Filtered elements : [9, 1, 10, 13]

Método #2: Usar filter() + lambda

En esto, la tarea de filtrado se realiza mediante filter() y la función lambda.

Python3

# Python3 code to demonstrate working of 
# Remove Elements in K distance with N
# Using filter() + lambda
  
# initializing list
test_list = [4, 5, 9, 1, 10, 6, 13 ]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing K 
K = 3
  
# initializing N 
N = 5
  
# checking for elements in safe zone with respect to N
res = list(filter(lambda ele : ele < N - K or ele > N + K, test_list))
  
# printing result 
print("Filtered elements : " + str(res))
Producción

The original list is : [4, 5, 9, 1, 10, 6, 13]
Filtered elements : [9, 1, 10, 13]

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 *