Python: par más cercano al elemento de índice Kth en Tuple

A veces, mientras trabajamos con registros de Python, podemos tener un problema en el que necesitamos encontrar la tupla más cercana a cierta tupla, consulta en un índice en particular. Este tipo de problema puede tener aplicación en dominios de datos como el desarrollo web. Analicemos ciertas formas en que se puede realizar esta tarea.

Entrada :
test_list = [(3, 4), (78, 76), (2, 3), (9, 8), (19, 23)]
tup = (17, 23)
K = 2

Salida : (19, 23)
Entrada :
test_list = [(3, 4, 9), (5, 6, 7)]
tup = (1, 2, 5)
K = 3
Salida : (5, 6, 7)

Método #1: Usar el enumerate() bucle +
La combinación de las funciones anteriores ofrece una forma de fuerza bruta para resolver este problema. En esto, usamos enumerate() para monitorear el índice y abs() para mantener la diferencia mínima actualizada verificada para cada elemento en un ciclo.

# Python3 code to demonstrate working of 
# Closest Pair to Kth index element in Tuple
# Using enumerate() + loop
  
# initializing list
test_list = [(3, 4), (78, 76), (2, 3), (9, 8), (19, 23)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing tuple
tup = (17, 23)
  
# initializing K 
K = 1
  
# Closest Pair to Kth index element in Tuple
# Using enumerate() + loop
min_dif, res = 999999999, None
for idx, val in enumerate(test_list):
    dif = abs(tup[K - 1] - val[K - 1])
    if dif < min_dif:
        min_dif, res = dif, idx
  
# printing result 
print("The nearest tuple to Kth index element is : " + str(test_list[res])) 
Producción :

The original list is : [(3, 4), (78, 76), (2, 3), (9, 8), (19, 23)]
The nearest tuple to Kth index element is : (19, 23)

Método #2: Usar min()+ lambda
La combinación de las funciones anteriores ofrece una forma abreviada de resolver este problema. En esto, usamos min() para encontrar la diferencia mínima de elementos y la función lambda se usa para realizar iteraciones y cálculos.

# Python3 code to demonstrate working of 
# Closest Pair to Kth index element in Tuple
# Using min() + lambda
  
# initializing list
test_list = [(3, 4), (78, 76), (2, 3), (9, 8), (19, 23)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing tuple
tup = (17, 23)
  
# initializing K 
K = 1
  
# Closest Pair to Kth index element in Tuple
# Using min() + lambda
res = min(range(len(test_list)), key = lambda sub: abs(test_list[sub][K - 1] - tup[K - 1]))
  
# printing result 
print("The nearest tuple to Kth index element is : " + str(test_list[res])) 
Producción :

The original list is : [(3, 4), (78, 76), (2, 3), (9, 8), (19, 23)]
The nearest tuple to Kth index element is : (19, 23)

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 *