Dictionary Comprehension med Betingelse
Du kan tilføje en betingelse i en ordbogsforståelse for dynamisk at filtrere elementer, mens ordbogen oprettes. Syntaksen for en ordbogsforståelse med en betingelse er:
{key_expression: value_expression for item in iterable if condition}
12345678910111213141516travel_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)
Denne kode gennemløber listen travel_wishlist og kontrollerer, om hver destinations budget er mindre end eller lig med $2500. Hvis betingelsen er opfyldt, tilføjes byen og dens budget til ordbogen affordable_destinations.
123456789101112travel_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}
Dette eksempel opnår det samme resultat som det forrige, men på en mere kortfattet og elegant måde. Betingelsen if budget <= 2500 filtrerer destinationerne baseret på budgettet, og den resulterende ordbog indeholder kun de overkommelige destinationer.
Hvis du forsøger at pakke kun to variabler ud (city og budget), vil Python ikke kunne behandle hvert element i listen korrekt, fordi hver underliste indeholder tre elementer (city, country og budget). Dette vil forårsage en fejl, da Python vil forsøge at tildele tre elementer til to variabler.
Sådan ville det se ud:
affordable_destinations = {city: budget for city, budget in travel_wishlist if budget <= 2500}
Denne kode vil udløse en ValueError: not enough values to unpack (expected 2, got 3), fordi hvert element i listen har tre værdier, og du forsøger at pakke kun to ud.
Swipe to start coding
En rejsende ønsker at filtrere deres travel_wishlist for kun at inkludere destinationer i Japan. For at gøre dette effektivt skal du udtrække relevante by-budget-par til en ordbog.
- Filtrer
travel_wishlistså den kun indeholder destinationer, hvor landet er"Japan". - Gem den resulterende ordbog i
japanese_destinations.
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Fantastisk!
Completion rate forbedret til 5
Dictionary Comprehension med Betingelse
Stryg for at vise menuen
Du kan tilføje en betingelse i en ordbogsforståelse for dynamisk at filtrere elementer, mens ordbogen oprettes. Syntaksen for en ordbogsforståelse med en betingelse er:
{key_expression: value_expression for item in iterable if condition}
12345678910111213141516travel_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)
Denne kode gennemløber listen travel_wishlist og kontrollerer, om hver destinations budget er mindre end eller lig med $2500. Hvis betingelsen er opfyldt, tilføjes byen og dens budget til ordbogen affordable_destinations.
123456789101112travel_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}
Dette eksempel opnår det samme resultat som det forrige, men på en mere kortfattet og elegant måde. Betingelsen if budget <= 2500 filtrerer destinationerne baseret på budgettet, og den resulterende ordbog indeholder kun de overkommelige destinationer.
Hvis du forsøger at pakke kun to variabler ud (city og budget), vil Python ikke kunne behandle hvert element i listen korrekt, fordi hver underliste indeholder tre elementer (city, country og budget). Dette vil forårsage en fejl, da Python vil forsøge at tildele tre elementer til to variabler.
Sådan ville det se ud:
affordable_destinations = {city: budget for city, budget in travel_wishlist if budget <= 2500}
Denne kode vil udløse en ValueError: not enough values to unpack (expected 2, got 3), fordi hvert element i listen har tre værdier, og du forsøger at pakke kun to ud.
Swipe to start coding
En rejsende ønsker at filtrere deres travel_wishlist for kun at inkludere destinationer i Japan. For at gøre dette effektivt skal du udtrække relevante by-budget-par til en ordbog.
- Filtrer
travel_wishlistså den kun indeholder destinationer, hvor landet er"Japan". - Gem den resulterende ordbog i
japanese_destinations.
Løsning
Tak for dine kommentarer!
single