Ordbokforståelse med betingelse
Du kan legge til en betingelse i en dictionary comprehension for å filtrere elementer dynamisk mens du oppretter ordboken. Syntaksen for en dictionary comprehension med 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 koden itererer gjennom listen travel_wishlist, og sjekker om budsjettet for hver destinasjon er mindre enn eller lik $2500. Hvis betingelsen er oppfylt, legges byen og budsjettet til i ordboken 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 eksempelet oppnår samme resultat som det forrige, men på en mer konsis og elegant måte. Betingelsen if budget <= 2500 filtrerer destinasjonene basert på budsjettet, og den resulterende ordboken inkluderer kun de rimelige destinasjonene.
Hvis du prøver å pakke ut kun to variabler (city og budget), vil ikke Python kunne behandle hvert element i listen korrekt, fordi hver underliste inneholder tre elementer (city, country og budget). Dette vil føre til en feil, ettersom Python vil forsøke å tilordne tre elementer til to variabler.
Slik vil det se ut:
affordable_destinations = {city: budget for city, budget in travel_wishlist if budget <= 2500}
Denne koden vil gi en ValueError: not enough values to unpack (expected 2, got 3), fordi hvert element i listen har tre verdier, og du prøver å pakke ut kun to.
Swipe to start coding
En reisende ønsker å filtrere sin travel_wishlist for kun å inkludere destinasjoner i Japan. For å gjøre dette effektivt, må du hente ut relevante by-budsjett-par i en ordbok.
- Filtrer
travel_wishlistslik at kun destinasjoner hvor landet er"Japan"inkluderes. - Lagre den resulterende ordboken i
japanese_destinations.
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Fantastisk!
Completion rate forbedret til 5
Ordbokforståelse med betingelse
Sveip for å vise menyen
Du kan legge til en betingelse i en dictionary comprehension for å filtrere elementer dynamisk mens du oppretter ordboken. Syntaksen for en dictionary comprehension med 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 koden itererer gjennom listen travel_wishlist, og sjekker om budsjettet for hver destinasjon er mindre enn eller lik $2500. Hvis betingelsen er oppfylt, legges byen og budsjettet til i ordboken 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 eksempelet oppnår samme resultat som det forrige, men på en mer konsis og elegant måte. Betingelsen if budget <= 2500 filtrerer destinasjonene basert på budsjettet, og den resulterende ordboken inkluderer kun de rimelige destinasjonene.
Hvis du prøver å pakke ut kun to variabler (city og budget), vil ikke Python kunne behandle hvert element i listen korrekt, fordi hver underliste inneholder tre elementer (city, country og budget). Dette vil føre til en feil, ettersom Python vil forsøke å tilordne tre elementer til to variabler.
Slik vil det se ut:
affordable_destinations = {city: budget for city, budget in travel_wishlist if budget <= 2500}
Denne koden vil gi en ValueError: not enough values to unpack (expected 2, got 3), fordi hvert element i listen har tre verdier, og du prøver å pakke ut kun to.
Swipe to start coding
En reisende ønsker å filtrere sin travel_wishlist for kun å inkludere destinasjoner i Japan. For å gjøre dette effektivt, må du hente ut relevante by-budsjett-par i en ordbok.
- Filtrer
travel_wishlistslik at kun destinasjoner hvor landet er"Japan"inkluderes. - Lagre den resulterende ordboken i
japanese_destinations.
Løsning
Takk for tilbakemeldingene dine!
single