Python: elementos K máximos y mínimos en Tuple

A veces, al tratar con tuplas, podemos tener problemas en los que necesitamos extraer solo elementos K extremos, es decir, elementos K máximos y mínimos en Tuple. Este problema puede tener aplicaciones en dominios como el desarrollo web y la ciencia de datos. Analicemos ciertas formas en que se puede resolver este problema.
 

Entrada : test_tup = (3, 7, 1, 18, 9), k = 2 
Salida : (3, 1, 9, 18)
Entrada : test_tup = (3, 7, 1), k=1 
Salida : (1, 3) 
 

Método #1: Usar sorted() + loop 
La combinación de las funcionalidades anteriores se puede usar para resolver este problema. En esto, realizamos la operación de clasificación usando sorted(), y el problema de la extracción de elementos K máximos y mínimos usando loop.
 

Python3

# Python3 code to demonstrate working of
# Maximum and Minimum K elements in Tuple
# Using sorted() + loop
 
# initializing tuple
test_tup = (5, 20, 3, 7, 6, 8)
 
# printing original tuple
print("The original tuple is : " + str(test_tup))
 
# initializing K
K = 2
 
# Maximum and Minimum K elements in Tuple
# Using sorted() + loop
res = []
test_tup = list(sorted(test_tup))
 
for idx, val in enumerate(test_tup):
    if idx < K or idx >= len(test_tup) - K:
        res.append(val)
res = tuple(res)
 
# printing result
print("The extracted values : " + str(res))
Producción : 

The original tuple is : (5, 20, 3, 7, 6, 8)
The extracted values : (3, 5, 8, 20)

 

 
Método n.º 2: usar la división de listas + sorted() 
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, realizamos la tarea de extracción máxima y mínima utilizando la división en lugar de la lógica de bucle de fuerza bruta.
 

Python3

# Python3 code to demonstrate working of
# Maximum and Minimum K elements in Tuple
# Using slicing + sorted()
 
# initializing tuple
test_tup = (5, 20, 3, 7, 6, 8)
 
# printing original tuple
print("The original tuple is : " + str(test_tup))
 
# initializing K
K = 2
 
# Maximum and Minimum K elements in Tuple
# Using slicing + sorted()
test_tup = list(test_tup)
temp = sorted(test_tup)
res = tuple(temp[:K] + temp[-K:])
 
# printing result
print("The extracted values : " + str(res))
Producción : 

The original tuple is : (5, 20, 3, 7, 6, 8)
The extracted values : (3, 5, 8, 20)

 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *