Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Ordbokskomprehension med Villkor | List- och Ordbokskomprehensioner
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Python Loopar Handledning

bookOrdbokskomprehension med Villkor

Du kan lägga till ett villkor i en dictionary comprehension för att filtrera poster dynamiskt när du skapar ordboken. Syntaxen för en dictionary comprehension med villkor är:

{key_expression: value_expression for item in iterable if condition}
12345678910111213141516
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)
copy

Den här koden itererar genom listan travel_wishlist och kontrollerar om varje resmåls budget är mindre än eller lika med $2500. Om villkoret uppfylls läggs staden och dess budget till i ordboken affordable_destinations.

123456789101112
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}
copy

Detta exempel uppnår samma resultat som det föregående, men på ett mer koncist och elegant sätt. Villkoret if budget <= 2500 filtrerar destinationerna baserat på budgeten, och den resulterande ordboken innehåller endast de prisvärda destinationerna.

Note
Notera

Om du försöker packa upp endast två variabler (city och budget) kommer Python inte att kunna bearbeta varje element i listan korrekt, eftersom varje underlista innehåller tre element (city, country och budget). Detta kommer att orsaka ett fel, eftersom Python försöker tilldela tre element till två variabler.

Så här skulle det se ut:

affordable_destinations = {city: budget for city, budget in travel_wishlist if budget <= 2500}

Denna kod kommer att ge ett ValueError: not enough values to unpack (expected 2, got 3), eftersom varje element i listan har tre värden och du försöker packa upp endast två.

Uppgift

Swipe to start coding

En resenär vill filtrera sin travel_wishlist för att endast inkludera destinationer i Japan. För att göra detta effektivt behöver du extrahera relevanta stad-budget-par till en ordbok.

  • Filtrera travel_wishlist så att endast destinationer där landet är "Japan" inkluderas.
  • Spara den resulterande ordboken i japanese_destinations.

Lösning

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 4
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Suggested prompts:

Can you explain how dictionary comprehensions work in more detail?

What are some other examples of using conditions in dictionary comprehensions?

Can you show how to filter by country instead of budget?

close

bookOrdbokskomprehension med Villkor

Svep för att visa menyn

Du kan lägga till ett villkor i en dictionary comprehension för att filtrera poster dynamiskt när du skapar ordboken. Syntaxen för en dictionary comprehension med villkor är:

{key_expression: value_expression for item in iterable if condition}
12345678910111213141516
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)
copy

Den här koden itererar genom listan travel_wishlist och kontrollerar om varje resmåls budget är mindre än eller lika med $2500. Om villkoret uppfylls läggs staden och dess budget till i ordboken affordable_destinations.

123456789101112
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}
copy

Detta exempel uppnår samma resultat som det föregående, men på ett mer koncist och elegant sätt. Villkoret if budget <= 2500 filtrerar destinationerna baserat på budgeten, och den resulterande ordboken innehåller endast de prisvärda destinationerna.

Note
Notera

Om du försöker packa upp endast två variabler (city och budget) kommer Python inte att kunna bearbeta varje element i listan korrekt, eftersom varje underlista innehåller tre element (city, country och budget). Detta kommer att orsaka ett fel, eftersom Python försöker tilldela tre element till två variabler.

Så här skulle det se ut:

affordable_destinations = {city: budget for city, budget in travel_wishlist if budget <= 2500}

Denna kod kommer att ge ett ValueError: not enough values to unpack (expected 2, got 3), eftersom varje element i listan har tre värden och du försöker packa upp endast två.

Uppgift

Swipe to start coding

En resenär vill filtrera sin travel_wishlist för att endast inkludera destinationer i Japan. För att göra detta effektivt behöver du extrahera relevanta stad-budget-par till en ordbok.

  • Filtrera travel_wishlist så att endast destinationer där landet är "Japan" inkluderas.
  • Spara den resulterande ordboken i japanese_destinations.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 4
single

single

some-alt