Python: clave con valores únicos máximos

Dado un diccionario con una lista de valores, extraiga la clave cuyo valor tenga la mayoría de los valores únicos.

Entrada : test_dict = {“Gfg”: [5, 7, 9, 4, 0], “es”: [6, 7, 4, 3, 3], “Mejor”: [9, 9, 6, 5, 5]}
Salida : «Gfg»
Explicación : «Gfg» tiene un máximo de elementos únicos, es decir, 5.

Entrada : test_dict = {“Gfg”: [5, 7, 7, 7, 7], “es”: [6, 7, 7, 7], “Mejor”: [9, 9, 6, 5, 5] }
Salida : «Mejor»
Explicación : 3 (máx.) elementos únicos, 9, 6, 5 de «Mejor».

Método #1: Usar bucle 

Esta es la forma bruta en la que se puede realizar esta tarea. En esto, iteramos para todos los valores de la lista y verificamos el recuento de valores de cada clave, extraemos la clave con valores únicos máximos.

Python3

# Python3 code to demonstrate working of 
# Key with maximum unique values
# Using loop
  
# initializing dictionary
test_dict = {"Gfg" : [5, 7, 5, 4, 5],
             "is" : [6, 7, 4, 3, 3], 
             "Best" : [9, 9, 6, 5, 5]}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
max_val = 0
max_key = None 
for sub in test_dict:
      
    # test for length using len()
    # converted to set for duplicates removal
    if len(set(test_dict[sub])) > max_val:
        max_val = len(set(test_dict[sub]))
        max_key = sub
  
# printing result 
print("Key with maximum unique values : " + str(max_key)) 
Producción

El diccionario original es: {‘Gfg’: [5, 7, 5, 4, 5], ‘is’: [6, 7, 4, 3, 3], ‘Best’: [9, 9, 6, 5 , 5]}
Clave con valores únicos máximos: es

Método #2: Usar sorted() + lambda() + set() + valores() + len()

La combinación de las funciones anteriores se puede utilizar para resolver este problema. En esto, invertimos la ordenación de las claves del diccionario en función de la longitud establecida y devolvemos el primer resultado.

Python3

# Python3 code to demonstrate working of 
# Key with maximum unique values
# Using sorted() + lambda() + set() + values() + len()
  
# initializing dictionary
test_dict = {"Gfg" : [5, 7, 5, 4, 5],
             "is" : [6, 7, 4, 3, 3], 
             "Best" : [9, 9, 6, 5, 5]}
  
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
  
# one-liner to solve a problem
# sorted used to reverse sort dictionary
max_key = sorted(test_dict, key = lambda ele: len(
          set(test_dict[ele])), reverse = True)[0]
  
# printing result 
print("Key with maximum unique values : " + str(max_key)) 
Producción

El diccionario original es: {‘Gfg’: [5, 7, 5, 4, 5], ‘is’: [6, 7, 4, 3, 3], ‘Best’: [9, 9, 6, 5 , 5]}
Clave con valores únicos máximos: es

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 *