Ordbokskomprehension med Villkor
Du kan lägga till ett villkor i en ordbokskomprehension för att filtrera objekt dynamiskt när du skapar ordboken. Syntaxen för en ordbokskomprehension med ett villkor är:
python
travel_wishlist = [ ['Paris', 'France', 2000], ['Tokyo', 'Japan', 3000], ['New York', 'USA', 2500], ['Kyoto', 'Japan', 1500], ['Sydney', 'Australia', 4000] ] # Filter destinations within a $2500 budget using a for loop affordable_destinations = {} for city, country, budget in travel_wishlist: if budget <= 2500: # Check if the budget is within the limit affordable_destinations[city] = budget print(affordable_destinations)
Denna kod itererar genom listan travel_wishlist
, och kontrollerar om varje destinations budget är mindre än eller lika med $2500. Om villkoret uppfylls, läggs staden och dess budget till i ordboken affordable_destinations
.
travel_wishlist = [ ['Paris', 'France', 2000], ['Tokyo', 'Japan', 3000], ['New York', 'USA', 2500], ['Kyoto', 'Japan', 1500], ['Sydney', 'Australia', 4000] ] # Use dictionary comprehension to filter destinations affordable_destinations = {city: budget for city, country, budget in travel_wishlist if budget <= 2500} print(affordable_destinations) # Output: {'Paris': 2000, 'New York': 2500, 'Kyoto': 1500}
Detta exempel uppnår samma resultat som det föregående men på ett mer kortfattat och elegant sätt. Villkoret if budget <= 2500
filtrerar destinationerna baserat på budgeten, och den resulterande ordboken inkluderar endast de prisvärda destinationerna.
Swipe to start coding
En resenär vill filtrera sin travel_wishlist
för att endast inkludera destinationer i Japan. För att uppnå detta effektivt behöver du extrahera relevanta stad-budget par till en ordbok.
- Filtrera
travel_wishlist
för att endast inkludera destinationer där landet är"Japan"
. - Lagra den resulterande ordboken i
japan_destinations
.
Lösning
Tack för dina kommentarer!