Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Dictionary Comprehension Mit Bedingung | Listen- und Dictionary-Comprehensions
Python-Schleifen-Tutorial

Dictionary Comprehension Mit Bedingung

In einer Dictionary Comprehension kann eine Bedingung hinzugefügt werden, um Elemente beim Erstellen des Dictionaries dynamisch zu filtern. Die Syntax für eine Dictionary Comprehension mit Bedingung ist:

{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)

Dieser Code durchläuft die Liste travel_wishlist und prüft, ob das Budget für jedes Reiseziel kleiner oder gleich $2500 ist. Wenn die Bedingung erfüllt ist, werden die Stadt und ihr Budget dem Dictionary affordable_destinations hinzugefügt.

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}

Dieses Beispiel erzielt das gleiche Ergebnis wie das vorherige, jedoch auf eine prägnantere und elegantere Weise. Die Bedingung if budget <= 2500 filtert die Reiseziele basierend auf dem Budget, und das resultierende Dictionary enthält nur die erschwinglichen Reiseziele.

Note
Hinweis

Wenn Sie versuchen, nur zwei Variablen (city und budget) zu entpacken, kann Python jedes Element der Liste nicht korrekt verarbeiten, da jede Unterliste drei Elemente enthält (city, country und budget). Dies führt zu einem Fehler, da Python versucht, drei Elemente auf zwei Variablen zuzuweisen.

So würde der Code aussehen:

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

Dieser Code löst einen ValueError: too many values to unpack (expected 2) aus, weil jedes Element in der Liste drei Werte enthält, Sie aber nur zwei entpacken möchten.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 4
single

single

Dictionary Comprehension Mit Bedingung

Swipe um das Menü anzuzeigen

In einer Dictionary Comprehension kann eine Bedingung hinzugefügt werden, um Elemente beim Erstellen des Dictionaries dynamisch zu filtern. Die Syntax für eine Dictionary Comprehension mit Bedingung ist:

{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)

Dieser Code durchläuft die Liste travel_wishlist und prüft, ob das Budget für jedes Reiseziel kleiner oder gleich $2500 ist. Wenn die Bedingung erfüllt ist, werden die Stadt und ihr Budget dem Dictionary affordable_destinations hinzugefügt.

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}

Dieses Beispiel erzielt das gleiche Ergebnis wie das vorherige, jedoch auf eine prägnantere und elegantere Weise. Die Bedingung if budget <= 2500 filtert die Reiseziele basierend auf dem Budget, und das resultierende Dictionary enthält nur die erschwinglichen Reiseziele.

Note
Hinweis

Wenn Sie versuchen, nur zwei Variablen (city und budget) zu entpacken, kann Python jedes Element der Liste nicht korrekt verarbeiten, da jede Unterliste drei Elemente enthält (city, country und budget). Dies führt zu einem Fehler, da Python versucht, drei Elemente auf zwei Variablen zuzuweisen.

So würde der Code aussehen:

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

Dieser Code löst einen ValueError: too many values to unpack (expected 2) aus, weil jedes Element in der Liste drei Werte enthält, Sie aber nur zwei entpacken möchten.

Aufgabe

Wischen, um mit dem Codieren zu beginnen

Ein Reisender möchte seine travel_wishlist filtern, um nur Reiseziele in Japan einzuschließen. Um dies effizient zu erreichen, müssen die relevanten Stadt-Budget-Paare in ein Dictionary extrahiert werden.

  • Filtern der travel_wishlist, sodass nur Reiseziele mit dem Land "Japan" enthalten sind.
  • Speichern des resultierenden Dictionaries in japanese_destinations.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 4
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

some-alt