Praktische Anwendungen und Beispiele
Sortieren von Produktkatalogen
Ein häufiger Anwendungsfall für das Sortieren von Listen von Wörterbüchern mit Callbacks liegt in E-Commerce-Anwendungen, in denen Sie Produktkatalogen basierend auf verschiedenen Kriterien wie Preis, Bewertung oder Popularität sortieren müssen.
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)
Ausgabe:
[{'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'}]
In diesem Beispiel wird die sort_by_price_and_rating()
-Funktion als Callback-Funktion verwendet, um den Produktkatalog zuerst nach dem 'price'-Schlüssel in aufsteigender Reihenfolge und dann nach dem 'rating'-Schlüssel in absteigender Reihenfolge zu sortieren.
Sortieren von Benutzerdaten
Eine weitere praktische Anwendung des Sortierens von Listen von Wörterbüchern mit Callbacks besteht in der Verwaltung von Benutzerdaten wie Kundenprofilen oder Mitarbeiternachweisen.
users = [
{"name": "Alice", "age": 25, "email": "[email protected]", "department": "Marketing"},
{"name": "Bob", "age": 30, "email": "[email protected]", "department": "IT"},
{"name": "Charlie", "age": 35, "email": "[email protected]", "department": "Finance"},
{"name": "David", "age": 28, "email": "[email protected]", "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)
Ausgabe:
[{'name': 'Bob', 'age': 30, 'email': '[email protected]', 'department': 'IT'}, {'name': 'David', 'age': 28, 'email': '[email protected]', 'department': 'IT'}, {'name': 'Alice', 'age': 25, 'email': '[email protected]', 'department': 'Marketing'}, {'name': 'Charlie', 'age': 35, 'email': '[email protected]', 'department': 'Finance'}]
In diesem Beispiel wird die sort_by_department_and_age()
-Funktion als Callback-Funktion verwendet, um die Benutzerdaten zuerst nach dem 'department'-Schlüssel in aufsteigender Reihenfolge und dann nach dem 'age'-Schlüssel in aufsteigender Reihenfolge zu sortieren.
Sortieren von geografischen Daten
Callback-Funktionen können auch verwendet werden, um geografische Daten wie eine Liste von Städten oder Orten basierend auf verschiedenen Kriterien wie Breitengrad, Längengrad oder Bevölkerung zu sortieren.
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)
Ausgabe:
[{'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}]
In diesem Beispiel wird die sort_by_latitude_and_population()
-Funktion als Callback-Funktion verwendet, um die Orte zuerst nach dem 'latitude'-Schlüssel in aufsteigender Reihenfolge und dann nach dem 'population'-Schlüssel in absteigender Reihenfolge zu sortieren.
Diese Beispiele zeigen, wie Callback-Funktionen verwendet werden können, um Listen von Wörterbüchern in einer Vielzahl von praktischen Anwendungen zu sortieren, was es Ihnen ermöglicht, die Sortierlogik an Ihre spezifischen Bedürfnisse anzupassen.