A veces, mientras trabajamos con diccionarios de Python, podemos tener un problema en el que necesitamos encontrar la longitud máxima de todos los valores de string de una clave en particular. Este problema puede ocurrir en dominios de programación día a día y desarrollo web. Analicemos ciertas formas en que se puede realizar esta tarea.
Ejemplos –
Entrada:
test_list = [{‘key1’ : “abcd”, ‘key2’ : 2}, {‘key1’ : “qwertyui”, ‘key2’ : 2}, {‘key1’ : “xcvz”, ‘key3’ : 3}, {‘clave1’: ninguna, ‘clave3’: 4}]Salida: 8
Explicación: entre todos los valores para la clave dadakey1
, qwertyui tiene una longitud máxima (que es 8).
Método n.° 1: usar max() + len()
la comprensión de listas +
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, calculamos la longitud máxima de la string usando max() y len(). La comparación con cada uno está limitada por la comprensión de la lista.
# Python3 code to demonstrate working of # Maximum String value length of Key # Using max() + len() + list comprehension # initializing list test_list = [{'Gfg' : "abcd", 'best' : 2}, {'Gfg' : "qwertyui", 'best' : 2}, {'Gfg' : "xcvz", 'good' : 3}, {'Gfg' : None, 'good' : 4}] # printing original list print("The original list is : " + str(test_list)) # initializing Key filt_key = 'Gfg' # Maximum String value length of Key # Using max() + len() + list comprehension temp = (sub[filt_key] for sub in test_list) res = max(len(ele) for ele in temp if ele is not None) # printing result print("The maximum length key value : " + str(res))
La lista original es: [{‘mejor’: 2, ‘Gfg’: ‘abcd’}, {‘mejor’: 2, ‘Gfg’: ‘qwertyui’}, {‘buena’: 3, ‘Gfg’: ‘ xcvz’}, {‘good’: 4, ‘Gfg’: None}]
El valor de clave de longitud máxima: 8
Método n.º 2: Uso de la comprensión de listas + len() + max()
(una línea)
La tarea similar también se puede combinar para realizarla en una línea para una solución compacta.
# Python3 code to demonstrate working of # Maximum String value length of Key # Using max() + len() + list comprehension (one liner) # initializing list test_list = [{'Gfg' : "abcd", 'best' : 2}, {'Gfg' : "qwertyui", 'best' : 2}, {'Gfg' : "xcvz", 'good' : 3}, {'Gfg' : None, 'good' : 4}] # printing original list print("The original list is : " + str(test_list)) # initializing Key filt_key = 'Gfg' # Maximum String value length of Key # Using max() + len() + list comprehension (one liner) res = len(max(test_list, key = lambda sub: len(sub[filt_key]) if sub[filt_key] is not None else 0)[filt_key]) # printing result print("The maximum length key value : " + str(res))
La lista original es: [{‘mejor’: 2, ‘Gfg’: ‘abcd’}, {‘mejor’: 2, ‘Gfg’: ‘qwertyui’}, {‘buena’: 3, ‘Gfg’: ‘ xcvz’}, {‘good’: 4, ‘Gfg’: None}]
El valor de clave de longitud máxima: 8
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