A veces, mientras trabajamos con registros de Python, podemos tener un problema en el que necesitamos extraer todos los valores de la lista personalizada en los registros del diccionario de listas. Este problema puede tener aplicación en dominios como el desarrollo web y la programación escolar. Analicemos ciertas formas en que se puede realizar esta tarea.
Entrada :
test_list = [{‘nombre’: ‘Gfg’, ‘id’: 1, ‘Puntuación’: 3}, {‘nombre’: ‘es’, ‘id’: 4, ‘Puntuación’: 10},
{ ‘nombre’: ‘Mejor’, ‘Puntuación’: 12}]
get_list = [‘nombre’]
Salida : [[‘Gfg’], [‘es’], [‘Mejor’]]Entrada :
test_list = [{‘nombre’: ‘Gfg’, ‘id’: 1, ‘Puntuación’: 3}, {‘nombre’: ‘es’, ‘id’: 4, ‘Puntuación’: 10},
{ ‘nombre’: ‘Mejor’, ‘Puntuación’: 12}]
get_list = [‘Serial’]
Salida : [[Ninguno], [Ninguno], [Ninguno]]
Método n.º 1: usar la comprensión de listas +get()
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, realizamos la tarea de iterar a través de cada diccionario usando la comprensión de listas y get() se usa para obtener valores del diccionario y también manejar valores no presentes.
# Python3 code to demonstrate working of # Values from custom List in Records # Using list comprehension + get() # initializing list test_list = [{'name' : 'Gfg', 'id' : 1, 'Score' : 3}, {'name' : 'is', 'id' : 4, 'Score' : 10}, {'name' : 'Best', 'Score' : 12}] # printing original list print("The original list : " + str(test_list)) # initializing Get list get_list = ['name', 'id'] # Values from custom List in Records # Using list comprehension + get() res = [list(idx.get(sub) for sub in get_list) for idx in test_list] # printing result print("All extracted values : " + str(res))
The original list : [{'name': 'Gfg', 'id': 1, 'Score': 3}, {'name': 'is', 'id': 4, 'Score': 10}, {'name': 'Best', 'Score': 12}] All extracted values : [['Gfg', 1], ['is', 4], ['Best', None]]
Método n.º 2: usar la comprensión de listas +itemgetter() + intersection()
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, usamos itemgetter() e intersection() para obtener el valor comprobando tanto la lista de objetivos como la lista de argumentos. No se pueden manejar las claves no presentes.
# Python3 code to demonstrate working of # Values from custom List in Records # Using list comprehension + itemgetter() + intersection() from operator import itemgetter # initializing list test_list = [{'name' : 'Gfg', 'id' : 1, 'Score' : 3}, {'name' : 'is', 'id' : 4, 'Score' : 10}] # printing original list print("The original list : " + str(test_list)) # initializing Get list get_list = ['name', 'id'] # Values from custom List in Records # Using list comprehension + itemgetter() + intersection() res = [list(itemgetter(*set(get_list).intersection(idx))(idx)) for idx in test_list] # printing result print("All extracted values : " + str(res))
The original list : [{'name': 'Gfg', 'id': 1, 'Score': 3}, {'name': 'is', 'id': 4, 'Score': 10}] All extracted values : [[1, 'Gfg'], [4, 'is']]
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