Applications pratiques et exemples
Trier des catalogues de produits
Un cas d'utilisation courant pour trier des listes de dictionnaires avec des fonctions de rappel est dans les applications d'e-commerce, où vous devez trier des catalogues de produits selon divers critères, tels que le prix, la note ou la popularité.
products = [
{"name": "Product A", "price": 29.99, "rating": 4.5, "category": "Electronics"},
{"name": "Product B", "price": 19.99, "rating": 3.8, "category": "Home"},
{"name": "Product C", "price": 39.99, "rating": 4.2, "category": "Electronics"},
{"name": "Product D", "price": 24.99, "rating": 4.0, "category": "Home"}
]
def sort_by_price_and_rating(item):
return (item["price"], -item["rating"])
sorted_products = sorted(products, key=sort_by_price_and_rating)
print(sorted_products)
Sortie :
[{'name': 'Product B', 'price': 19.99, 'rating': 3.8, 'category': 'Home'}, {'name': 'Product D', 'price': 24.99, 'rating': 4.0, 'category': 'Home'}, {'name': 'Product A', 'price': 29.99, 'rating': 4.5, 'category': 'Electronics'}, {'name': 'Product C', 'price': 39.99, 'rating': 4.2, 'category': 'Electronics'}]
Dans cet exemple, la fonction sort_by_price_and_rating() est utilisée comme fonction de rappel pour trier le catalogue de produits d'abord par la clé 'price' dans l'ordre croissant, puis par la clé 'rating' dans l'ordre décroissant.
Trier des données d'utilisateurs
Une autre application pratique du tri de listes de dictionnaires avec des fonctions de rappel est dans la gestion des données d'utilisateurs, telles que les profils de clients ou les enregistrements d'employés.
users = [
{"name": "Alice", "age": 25, "email": "alice@example.com", "department": "Marketing"},
{"name": "Bob", "age": 30, "email": "bob@example.com", "department": "IT"},
{"name": "Charlie", "age": 35, "email": "charlie@example.com", "department": "Finance"},
{"name": "David", "age": 28, "email": "david@example.com", "department": "IT"}
]
def sort_by_department_and_age(item):
return (item["department"], item["age"])
sorted_users = sorted(users, key=sort_by_department_and_age)
print(sorted_users)
Sortie :
[{'name': 'Bob', 'age': 30, 'email': 'bob@example.com', 'department': 'IT'}, {'name': 'David', 'age': 28, 'email': 'david@example.com', 'department': 'IT'}, {'name': 'Alice', 'age': 25, 'email': 'alice@example.com', 'department': 'Marketing'}, {'name': 'Charlie', 'age': 35, 'email': 'charlie@example.com', 'department': 'Finance'}]
Dans cet exemple, la fonction sort_by_department_and_age() est utilisée comme fonction de rappel pour trier les données d'utilisateurs d'abord par la clé 'department' dans l'ordre croissant, puis par la clé 'age' dans l'ordre croissant.
Trier des données géographiques
Les fonctions de rappel peuvent également être utilisées pour trier des données géographiques, telles qu'une liste de villes ou de lieux, selon divers critères comme la latitude, la longitude ou la population.
locations = [
{"city": "New York", "latitude": 40.730610, "longitude": -73.935242, "population": 8804190},
{"city": "Los Angeles", "latitude": 34.052235, "longitude": -118.243683, "population": 3971883},
{"city": "Chicago", "latitude": 41.878113, "longitude": -87.629799, "population": 2746388},
{"city": "Houston", "latitude": 29.760427, "longitude": -95.369804, "population": 2304580}
]
def sort_by_latitude_and_population(item):
return (item["latitude"], -item["population"])
sorted_locations = sorted(locations, key=sort_by_latitude_and_population)
print(sorted_locations)
Sortie :
[{'city': 'Houston', 'latitude': 29.760427, 'longitude': -95.369804, 'population': 2304580}, {'city': 'Los Angeles', 'latitude': 34.052235, 'longitude': -118.243683, 'population': 3971883}, {'city': 'Chicago', 'latitude': 41.878113, 'longitude': -87.629799, 'population': 2746388}, {'city': 'New York', 'latitude': 40.730610, 'longitude': -73.935242, 'population': 8804190}]
Dans cet exemple, la fonction sort_by_latitude_and_population() est utilisée comme fonction de rappel pour trier les lieux d'abord par la clé 'latitude' dans l'ordre croissant, puis par la clé 'population' dans l'ordre décroissant.
Ces exemples montrent comment les fonctions de rappel peuvent être utilisées pour trier des listes de dictionnaires dans diverses applications pratiques, vous permettant de personnaliser la logique de tri pour répondre à vos besoins spécifiques.