Python | Tuplas con clave máxima de valores similares

A veces, mientras trabajamos con Python, podemos tener un problema en el que necesitamos obtener todos los registros. Estos datos pueden tener valores similares y necesitamos encontrar el par máximo de valores con clave. Este tipo de problema puede ocurrir mientras se trabaja con datos. Analicemos ciertas formas en que se puede realizar esta tarea.

Método #1: Uso de max() + groupby() + itemgetter() la comprensión de lista +
La combinación de las funciones anteriores se puede utilizar para realizar esta tarea en particular. En esto, primero agrupamos los elementos con valores similares usando groupby() and itemgetter(), y luego extraemos el máximo de los que usan max()y acumulamos el resultado en la lista usando la comprensión de lista.

# Python3 code to demonstrate working of
# Tuples with maximum key of similar values
# using max() + groupby() + itemgetter() + list comprehension
from operator import itemgetter
from itertools import groupby
  
# initialize list
test_list = [(4, 3), (2, 3), (3, 10), (5, 10), (5, 6)]
  
# printing original list
print("The original list : " + str(test_list))
  
# Tuples with maximum key of similar values
# using max() + groupby() + itemgetter() + list comprehension
res = [max(values) for key, values in groupby(test_list, key = itemgetter(1))]
  
# printing result
print("The records retaining maximum keys of similar values : " + str(res))
Producción :

The original list : [(4, 3), (2, 3), (3, 10), (5, 10), (5, 6)]
The records retaining maximum keys of similar values : [(4, 3), (5, 10), (5, 6)]

Método n.° 2: Usar setdefault() + items()+ bucle + comprensión de lista
La combinación de las funciones anteriores también puede lograr esta tarea. En esto, convertimos los pares clave-valor de tupla de lista en un diccionario y asignamos un valor predeterminado usando setdefault(). El resultado final se calcula utilizando la comprensión de listas.

# Python3 code to demonstrate working of
# Tuples with maximum key of similar values
# using setdefault() + items() + loop + list comprehension
  
# initialize list
test_list = [(4, 3), (2, 3), (3, 10), (5, 10), (5, 6)]
  
# printing original list
print("The original list : " + str(test_list))
  
# Tuples with maximum key of similar values
# using setdefault() + items() + loop + list comprehension
temp = {}
for val, key in test_list:
  if val > temp.setdefault(key, val):
    temp[key] = val
res = [(val, key) for key, val in temp.items()]
  
# printing result
print("The records retaining maximum keys of similar values : " + str(res))
Producción :

The original list : [(4, 3), (2, 3), (3, 10), (5, 10), (5, 6)]
The records retaining maximum keys of similar values : [(4, 3), (5, 10), (5, 6)]

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 *