Programa Python para extraer diccionarios con el máximo número de claves

Dada una lista de diccionarios, la tarea es escribir un programa en Python para extraer el diccionario con el número máximo de claves.

Entrada : test_list = [{‘Gfg’: 1}, {‘Gfg’: 1, ‘is’: 5, ‘best’: 4}, {‘Gfg’: 2, ‘best’: 9}]

Salida : {‘Gfg’: 1, ‘es’: 5, ‘mejor’: 4}

Explicación : Diccionario con máx. se emite la longitud 3.

Entrada: test_list = [{‘Gfg’: 1}, {‘Gfg’: 2, ‘mejor’: 9}]

Salida: {‘Gfg’: 2, ‘mejor’: 9}

Explicación : Diccionario con máx. se emite la longitud 2.

Método 1: Usar len() y loop

En esto, iteramos para todos los diccionarios y hacemos un seguimiento de su número de claves, comparando y actualizando al máximo en cada paso.

Este método muestra solo el primer diccionario encontrado con el número máximo de elementos, es decir, si más de un diccionario tiene el mismo número de elementos y este número es máximo, solo se mostrará el primer diccionario.

Ejemplo:

Python3

# initializing list
test_list = [{'Gfg': 1}, {'Gfg': 1, 'is': 5, 'best': 4}, {'Gfg': 2, 'best': 9}]
  
# printing original list
print("The original list is : " + str(test_list))
  
res = dict()
max_len = 0
for sub in test_list:
  
    # comparing and updating maximum dictionary acc. to length
    if len(sub) > max_len:
        res = sub
        max_len = len(sub)
  
# printing result
print("Dictionary with maximum keys  : " + str(res))

Producción:

La lista original es: [{‘Gfg’: 1}, {‘Gfg’: 1, ‘is’: 5, ‘best’: 4}, {‘Gfg’: 2, ‘best’: 9}]

Diccionario con teclas máximas: {‘Gfg’: 1, ‘is’: 5, ‘best’: 4}

Método 2: Usar max() y comprensión de listas

En esto, obtenemos la longitud máxima del número de claves presentes en las listas de diccionarios. Luego se extraen los diccionarios con la longitud máxima calculada. Este método permite múltiples resultados para las claves coincidentes.

Ejemplo:

Python3

# initializing list
test_list = [{'Gfg': 1}, {'Gfg': 1, 'is': 5, 'best': 4},
             {'Gfg': 2, 'best': 9, "book": 1}]
  
# printing original list
print("The original list is : " + str(test_list))
  
max_len = max(len(sub) for sub in test_list)
res = [sub for sub in test_list if len(sub) == max_len]
  
# printing result
print("Dictionary with maximum keys  : " + str(res))

Producción:

La lista original es: [{‘Gfg’: 1}, {‘Gfg’: 1, ‘is’: 5, ‘best’: 4}, {‘Gfg’: 2, ‘best’: 9, ‘book’ : 1}]

Diccionario con teclas máximas: [{‘Gfg’: 1, ‘is’: 5, ‘best’: 4}, {‘Gfg’: 2, ‘best’: 9, ‘book’: 1}]

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 *