Python – Elementos distantes no K

Dada una lista, la tarea es escribir un programa en Python para extraer todos los elementos de manera que ningún elemento esté a una distancia K de otro.

Ejemplos:

Entrada : test_list = [8, 10, 16, 20, 3, 1, 7], K = 2 
Salida : [16, 20, 7] 
Explicación : 16 + 2 = 18, 16 – 2 = 14, ambos no están en lista, por lo tanto filtrada.

Entrada : test_list = [8, 10, 16, 20], K = 2 
Salida : [16, 20, 7] 
Explicación : 16 + 2 = 18, 16 – 2 = 14, ambos no están en la lista, por lo tanto filtrados. 

Método #1: Usar bucle

En esto, iteramos para todos los elementos y usamos la verificación del operador para cada elemento si tiene un elemento a una distancia K de él, si lo encuentra, no está incluido en la lista.

Python3

# Python3 code to demonstrate working of
# Non K distant elements
# Using loop
  
# initializing list
test_list = [8, 10, 16, 20, 3, 1, 7]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing K
K = 2
  
res = []
for ele in test_list:
  
    # check for K distant
    if ele + K not in test_list and ele - K not in test_list:
        res.append(ele)
  
# printing result
print("The filtered List : " + str(res))
Producción

The original list is : [8, 10, 16, 20, 3, 1, 7]
The filtered List : [16, 20, 7]

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

En esto, realizamos la tarea de filtrado e iteración utilizando 1 trazador de líneas utilizando la comprensión de listas.

Python3

# Python3 code to demonstrate working of
# Non K distant elements
# Using list comprehension
  
# initializing list
test_list = [8, 10, 16, 20, 3, 1, 7]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing K
K = 2
  
# using list comprehension to get all elements of non K distance
res = [ele for ele in test_list if ele +
       K not in test_list and ele - K not in test_list]
  
# printing result
print("The filtered List : " + str(res))
Producción

The original list is : [8, 10, 16, 20, 3, 1, 7]
The filtered List : [16, 20, 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

Deja una respuesta

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