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))
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))
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