Técnicas y ejemplos prácticos
Ahora que tienes una sólida comprensión de las listas de diccionarios y cómo extraer valores de ellas, exploremos algunas técnicas y ejemplos prácticos que te ayudarán a aplicar estos conceptos en tu programación en Python.
Ordenar una lista de diccionarios
Supongamos que tienes una lista de diccionarios que representan registros de estudiantes y deseas ordenar la lista en función de las calificaciones de los estudiantes. Puedes utilizar la función sorted()
y especificar la clave por la cual ordenar.
students = [
{"name": "John", "grade": 85},
{"name": "Jane", "grade": 92},
{"name": "Bob", "grade": 78},
{"name": "Alice", "grade": 90}
]
sorted_students = sorted(students, key=lambda x: x["grade"], reverse=True)
print(sorted_students)
## Output: [{'name': 'Jane', 'grade': 92},
## {'name': 'Alice', 'grade': 90},
## {'name': 'John', 'grade': 85},
## {'name': 'Bob', 'grade': 78}]
Agrupar datos por una clave
Puedes agrupar una lista de diccionarios por una clave específica y crear un diccionario de listas, donde las claves son los valores únicos de la clave de agrupación y los valores son listas de los diccionarios correspondientes.
products = [
{"id": 1, "name": "Product A", "category": "Electronics"},
{"id": 2, "name": "Product B", "category": "Electronics"},
{"id": 3, "name": "Product C", "category": "Furniture"},
{"id": 4, "name": "Product D", "category": "Furniture"}
]
grouped_products = {}
for product in products:
category = product["category"]
if category not in grouped_products:
grouped_products[category] = []
grouped_products[category].append(product)
print(grouped_products)
## Output: {'Electronics': [{'id': 1, 'name': 'Product A', 'category': 'Electronics'},
## {'id': 2, 'name': 'Product B', 'category': 'Electronics'}],
## 'Furniture': [{'id': 3, 'name': 'Product C', 'category': 'Furniture'},
## {'id': 4, 'name': 'Product D', 'category': 'Furniture'}]}
Puedes utilizar comprensiones de listas y otras técnicas para transformar los datos almacenados en una lista de diccionarios. Por ejemplo, puedes crear una nueva lista de diccionarios con solo las claves deseadas o calcular valores derivados.
transactions = [
{"id": 1, "amount": 100.0, "currency": "USD"},
{"id": 2, "amount": 75.0, "currency": "EUR"},
{"id": 3, "amount": 50.0, "currency": "USD"}
]
## Extract only the id and amount keys
simple_transactions = [{
"id": t["id"],
"amount": t["amount"]
} for t in transactions]
print(simple_transactions)
## Output: [{'id': 1, 'amount': 100.0}, {'id': 2, 'amount': 75.0}, {'id': 3, 'amount': 50.0}]
## Calculate the USD equivalent of each transaction
usd_transactions = [{
"id": t["id"],
"amount_usd": t["amount"] if t["currency"] == "USD" else t["amount"] * 1.1
} for t in transactions]
print(usd_transactions)
## Output: [{'id': 1, 'amount_usd': 100.0}, {'id': 2, 'amount_usd': 82.5}, {'id': 3, 'amount_usd': 50.0}]
Al explorar estas técnicas y ejemplos prácticos, puedes mejorar tu capacidad para trabajar con listas de diccionarios y aplicarlas de manera efectiva en tus proyectos de Python.