Compréhension de Dictionnaire avec Condition
Il est possible d’ajouter une condition dans une compréhension de dictionnaire afin de filtrer dynamiquement les éléments lors de la création du dictionnaire. La syntaxe d’une compréhension de dictionnaire avec condition est la suivante :
{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)
Ce code parcourt la liste travel_wishlist, en vérifiant si le budget de chaque destination est inférieur ou égal à 2500 $. Si la condition est remplie, la ville et son budget sont ajoutés au dictionnaire 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}
Cet exemple atteint le même résultat que le précédent, mais de manière plus concise et élégante. La condition if budget <= 2500 filtre les destinations selon le budget, et le dictionnaire résultant inclut uniquement les destinations abordables.
Si vous essayez de décomposer uniquement deux variables (city et budget), Python ne pourra pas traiter correctement chaque élément de la liste, car chaque sous-liste contient trois éléments (city, country et budget). Cela entraînera une erreur, car Python tentera d'attribuer trois éléments à deux variables.
Voici à quoi cela ressemblerait :
affordable_destinations = {city: budget for city, budget in travel_wishlist if budget <= 2500}
Ce code générera une ValueError: not enough values to unpack (expected 2, got 3), car chaque élément de la liste comporte trois valeurs et vous essayez d'en décomposer seulement deux.
Swipe to start coding
Un voyageur souhaite filtrer sa travel_wishlist pour inclure uniquement les destinations au Japon. Pour réaliser cela efficacement, il faut extraire les paires ville-budget pertinentes dans un dictionnaire.
- Filtrer la
travel_wishlistpour inclure uniquement les destinations dont le pays est"Japan". - Enregistrer le dictionnaire résultant dans
japanese_destinations.
Solution
Merci pour vos commentaires !
single
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Génial!
Completion taux amélioré à 5
Compréhension de Dictionnaire avec Condition
Glissez pour afficher le menu
Il est possible d’ajouter une condition dans une compréhension de dictionnaire afin de filtrer dynamiquement les éléments lors de la création du dictionnaire. La syntaxe d’une compréhension de dictionnaire avec condition est la suivante :
{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)
Ce code parcourt la liste travel_wishlist, en vérifiant si le budget de chaque destination est inférieur ou égal à 2500 $. Si la condition est remplie, la ville et son budget sont ajoutés au dictionnaire 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}
Cet exemple atteint le même résultat que le précédent, mais de manière plus concise et élégante. La condition if budget <= 2500 filtre les destinations selon le budget, et le dictionnaire résultant inclut uniquement les destinations abordables.
Si vous essayez de décomposer uniquement deux variables (city et budget), Python ne pourra pas traiter correctement chaque élément de la liste, car chaque sous-liste contient trois éléments (city, country et budget). Cela entraînera une erreur, car Python tentera d'attribuer trois éléments à deux variables.
Voici à quoi cela ressemblerait :
affordable_destinations = {city: budget for city, budget in travel_wishlist if budget <= 2500}
Ce code générera une ValueError: not enough values to unpack (expected 2, got 3), car chaque élément de la liste comporte trois valeurs et vous essayez d'en décomposer seulement deux.
Swipe to start coding
Un voyageur souhaite filtrer sa travel_wishlist pour inclure uniquement les destinations au Japon. Pour réaliser cela efficacement, il faut extraire les paires ville-budget pertinentes dans un dictionnaire.
- Filtrer la
travel_wishlistpour inclure uniquement les destinations dont le pays est"Japan". - Enregistrer le dictionnaire résultant dans
japanese_destinations.
Solution
Merci pour vos commentaires !
single