Buscar una lista de diccionarios en Python
-
Utilice la función
next()
para buscar una lista de diccionarios en Python -
Buscar una lista de diccionarios con la función
filter()
en Python - Utilice la comprensión de listas para buscar una lista de diccionarios en Python
Este tutorial presentará los métodos que puede utilizar para buscar una lista de diccionarios en Python.
Utilice la función next()
para buscar una lista de diccionarios en Python
La función next()
se puede utilizar para proporcionar el resultado como el siguiente elemento en el iterador dado. Este método también requiere el uso del bucle for
para probar el proceso contra todas las condiciones.
El siguiente código usa la función next()
para buscar una lista de diccionarios en Python.
lstdict = [
{"name": "Klaus", "age": 32},
{"name": "Elijah", "age": 33},
{"name": "Kol", "age": 28},
{"name": "Stefan", "age": 8},
]
print(next(x for x in lstdict if x["name"] == "Klaus"))
print(next(x for x in lstdict if x["name"] == "David"))
Producción :
{'name': 'Klaus', 'age': 32}
Traceback (most recent call last):
File "<string>", line 8, in <module>
StopIteration
Este método se implementa con éxito cuando buscamos un nombre que ya existe en la lista de diccionarios. Aún así, da un error de StopIteration
cuando se busca un nombre que no existe en la lista de diccionarios.
Sin embargo, este problema se puede tratar fácilmente en el código anterior. Simplemente modifica y proporciona un valor predeterminado con el uso de una API ligeramente diferente.
lstdict = [
{"name": "Klaus", "age": 32},
{"name": "Elijah", "age": 33},
{"name": "Kol", "age": 28},
{"name": "Stefan", "age": 8},
]
print(next((x for x in lstdict if x["name"] == "David"), None))
Producción :
None
En lugar de buscar el elemento en sí, también podemos encontrar el índice del elemento en una Lista de diccionarios. Para implementar esto, podemos usar la función enumerate()
.
El siguiente código utiliza la función next()
y la función enumerate()
para buscar y encontrar el índice del elemento.
lstdict = [
{"name": "Klaus", "age": 32},
{"name": "Elijah", "age": 33},
{"name": "Kol", "age": 28},
{"name": "Stefan", "age": 8},
]
print(next((i for i, x in enumerate(lstdict) if x["name"] == "Kol"), None))
Producción :
2
Buscar una lista de diccionarios con la función filter()
en Python
La función filter(function, sequence)
se utiliza para comparar la sequence
con la function
en Python. Comprueba que cada elemento de la secuencia sea verdadero o no según la función. Podemos buscar fácilmente un elemento en una lista de diccionarios utilizando la función filter()
con una función lambda
. En Python3, la función filter()
devuelve un objeto de la clase filter
. Podemos convertir ese objeto en una lista con la función list()
.
El siguiente ejemplo de código nos muestra cómo podemos buscar en una lista de diccionarios un elemento específico con las funciones filter()
y lambda
.
listOfDicts = [
{"name": "Tommy", "age": 20},
{"name": "Markus", "age": 25},
{"name": "Pamela", "age": 27},
{"name": "Richard", "age": 22},
]
list(filter(lambda item: item["name"] == "Richard", listOfDicts))
Producción :
[{'age': 22, 'name': 'Richard'}]
Buscamos en la lista de diccionarios el elemento donde la clave name
es igual a Richard
utilizando la función filter()
con una función lambda
. Primero, inicializamos nuestra lista de diccionarios, listOfDicts
, y usamos la función filter()
para buscar los valores que coinciden con la función lambda
lambda item: item['name'] == 'Richard'
in eso. Finalmente, usamos la función list()
para convertir los resultados en una lista.
Utilice la comprensión de listas para buscar una lista de diccionarios en Python
La comprensión de listas es una forma relativamente más corta y muy elegante de crear listas que se formarán en función de los valores dados de una lista ya existente.
Podemos usar la comprensión de listas para devolver una lista que produzca los resultados de la búsqueda de la lista de diccionarios en Python.
El siguiente código usa la comprensión de listas para buscar una lista de diccionarios en Python.
lstdict = [
{"name": "Klaus", "age": 32},
{"name": "Elijah", "age": 33},
{"name": "Kol", "age": 28},
{"name": "Stefan", "age": 8},
]
print([x for x in lstdict if x["name"] == "Klaus"][0])
Producción :
{'name': 'Klaus', 'age': 32}
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedInArtículo relacionado - Python Dictionary
- Cómo comprobar si existe una clave en un diccionario en Python
- Convertir un diccionario en una lista en Python
- Cómo obtener todos los archivos de un directorio
- Cómo encontrar el valor máximo en el Diccionario Python
- Cómo ordenar un diccionario Python por valor
- Cómo fusionar dos diccionarios en Python 2 y 3
Artículo relacionado - Python List
- Convertir un diccionario en una lista en Python
- Eliminar todas las apariciones de un elemento de una lista en Python
- Eliminar duplicados de una lista en Python
- Cómo obtener el promedio de una lista en Python
- ¿Cuál es la diferencia entre los métodos de lista que añaden y amplían
- Cómo convertir una lista en cadena en Python