Практические техники и примеры
Теперь, когда вы хорошо понимаете списки словарей и способ извлечения значений из них, давайте рассмотрим некоторые практические техники и примеры, которые помогут вам применить эти концепции в вашем Python-программировании.
Сортировка списка словарей
Предположим, у вас есть список словарей, представляющих записи о студентах, и вы хотите отсортировать этот список по оценкам студентов. Вы можете использовать функцию sorted()
и указать ключ для сортировки.
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}]
Группировка данных по ключу
Вы можете сгруппировать список словарей по определенному ключу и создать словарь списков, где ключами будут уникальные значения ключа группировки, а значениями - списки соответствующих словарей.
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'}]}
Выполнение преобразований данных
Вы можете использовать списковые включения и другие техники для преобразования данных, хранящихся в списке словарей. Например, вы можете создать новый список словарей только с нужными ключами или вычислить производные значения.
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}]
Изучая эти практические техники и примеры, вы сможете повысить свою способность работать со списками словарей и эффективно применять их в своих Python-проектах.