Python: elimine las tuplas con una diferencia mayor que K

Dada la lista de tuplas duales, elimine los pares con una diferencia mayor que K.

Entrada : test_list = [(4, 8), (1, 7), (9, 12), (3, 12), (2, 10)], K = 6 
Salida : [(4, 8), (9 , 12), (1, 7)] 
Explicación : 4 (8 – 4), 3 (12 – 9) y 6 no son mayores que 6, por lo que se conservan.

Entrada : test_list = [(4, 8), (1, 7), (9, 12), (3, 12), (2, 10)], K = 3 
Salida : [(9, 12)] 
Explicación : 3 (12 – 9) no es mayor que 3, por lo tanto retenido. 

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

En esto, realizamos el filtrado probando la diferencia absoluta usando abs() , si se encuentra menor que K, se retiene, por lo tanto, se eliminan las tuplas de diferencia mayores que K.

Python3

# Python3 code to demonstrate working of
# Remove Tuples with difference greater than K
# Using list comprehension
  
# initializing list
test_list = [(4, 8), (1, 7), (9, 12), (3, 12), (2, 10)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing K
K = 5
  
# filtering using list comprehension, checking for smaller than K diff.
res = [sub for sub in test_list if abs(sub[0] - sub[1]) <= K]
  
# printing result
print("Tuples List after removal : " + str(res))

Producción:

La lista original es: [(4, 8), (1, 7), (9, 12), (3, 12), (2, 10)]
Lista de tuplas después de la eliminación: [(4, 8), (9) , 12)]

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

En esto, la tarea de filtrado se realiza usando filter() y la función lambda , abs() se usa para obtener la diferencia absoluta.

Python3

# Python3 code to demonstrate working of
# Remove Tuples with difference greater than K
# Using filter() + lambda + abs()
  
# initializing list
test_list = [(4, 8), (1, 7), (9, 12), (3, 12), (2, 10)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing K
K = 5
  
# Using filter() and lambda function for filtering
res = list(filter(lambda sub: abs(sub[0] - sub[1]) <= K, test_list))
  
# printing result
print("Tuples List after removal : " + str(res))

Producción:

La lista original es: [(4, 8), (1, 7), (9, 12), (3, 12), (2, 10)]
Lista de tuplas después de la eliminación: [(4, 8), (9) , 12)]

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 *