A veces, mientras trabajamos con los diccionarios de Python, podemos tener un problema en el que necesitamos extraer solo si un índice clave en particular es un valor numérico de los diccionarios que están en forma de strings. Esto puede ser deseable en aplicaciones en las que requerimos hacer preprocesamiento. Analicemos ciertas formas en que se puede realizar esta tarea.
Entrada : test_dict = {‘mejor’: [‘5′, ’35’, ‘geeks’], ‘CS’: [1, 2, 3], ‘Gfg’: [‘124’, ‘4’, ‘8 ‘]}
Salida : [(‘5’, 1, ‘124’), (’35’, 2, ‘4’)]Entrada : test_dict = {“Gfg”: [“4”], ‘mejor’: [“6”], ‘CS’: [1]}
Salida : [(‘6’, 1, ‘4’)]
Método n.º 1: Usar loop +zip() + isdigit()
La combinación de las funciones anteriores se puede usar para realizar esta tarea. En esto, verificamos la string numérica usando isdigit() y zip para realizar la acumulación de claves.
# Python3 code to demonstrate working of # Extract Numerical Dictionary values # Using loop + zip() + isdigit() # initializing dictionary test_dict = {"Gfg" : ["34", "45", 'geeks'], 'is' : ["875", None, "15"], 'best' : ["98", 'abc', '12k']} # printing original dictionary print("The original dictionary : " + str(test_dict)) # Extract Numerical Dictionary values # Using loop + zip() + isdigit() res = [] for a, b, c in zip(*test_dict.values()): if a.isdigit() : res.append((a, b, c)) # printing result print("The Numerical values : " + str(res))
El diccionario original: {‘Gfg’: [’34’, ’45’, ‘geeks’], ‘best’: [’98’, ‘abc’, ’12k’], ‘is’: [‘875′, Ninguno, ’15’]}
Los valores numéricos: [(’34’, ’98’, ‘875’), (’45’, ‘abc’, Ninguno)]
Método n.º 2: usar la comprensión de listas +zip() + isdigit()
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, realizamos una tarea similar al método anterior pero como una forma abreviada usando la comprensión de listas.
# Python3 code to demonstrate working of # Extract Numerical Dictionary values # Using list comprehension + zip() + isdigit() # initializing dictionary test_dict = {"Gfg" : ["34", "45", 'geeks'], 'is' : ["875", None, "15"], 'best' : ["98", 'abc', '12k']} # printing original dictionary print("The original dictionary : " + str(test_dict)) # Extract Numerical Dictionary values # Using list comprehension + zip() + isdigit() res = [(a, b, c) for a, b, c in zip(*test_dict.values()) if a.isdigit()] # printing result print("The Numerical values : " + str(res))
El diccionario original: {‘Gfg’: [’34’, ’45’, ‘geeks’], ‘best’: [’98’, ‘abc’, ’12k’], ‘is’: [‘875′, Ninguno, ’15’]}
Los valores numéricos: [(’34’, ’98’, ‘875’), (’45’, ‘abc’, Ninguno)]
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