single
Sanakirjan Ymmärtäminen Ehdolla
Pyyhkäise näyttääksesi valikon
Sanakirjakehitelmässä voidaan käyttää ehtoa, jolla suodatetaan alkioita dynaamisesti sanakirjaa luotaessa. Sanakirjakehitelmän syntaksi ehdon kanssa on:
{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)
Tämä koodi käy läpi travel_wishlist-listan ja tarkistaa, onko jokaisen kohteen budjetti enintään 2500 dollaria. Jos ehto täyttyy, kaupunki ja sen budjetti lisätään affordable_destinations-sanakirjaan.
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}
Tämä esimerkki saavuttaa saman tuloksen kuin edellinen, mutta tiiviimmällä ja elegantimmalla tavalla. Ehto if budget <= 2500 suodattaa kohteet budjetin perusteella, ja tuloksena oleva sanakirja sisältää vain edulliset kohteet.
Jos yrität purkaa vain kaksi muuttujaa (city ja budget), Python ei pysty käsittelemään listan jokaista alkiota oikein, koska jokainen alilista sisältää kolme alkiota (city, country ja budget). Tämä aiheuttaa virheen, sillä Python yrittää sijoittaa kolme arvoa kahteen muuttujaan.
Tältä koodi näyttäisi:
affordable_destinations = {city: budget for city, budget in travel_wishlist if budget <= 2500}
Tämä koodi aiheuttaa virheen ValueError: too many values to unpack (expected 2), koska jokaisessa listan alkiolla on kolme arvoa, mutta yrität purkaa vain kaksi.
Pyyhkäise aloittaaksesi koodauksen
Matkailija haluaa suodattaa travel_wishlist-listansa sisältämään vain kohteet Japanissa. Tämän saavuttamiseksi tehokkaasti, sinun tulee poimia asiaankuuluvat kaupunki-budjetti-parit sanakirjaan.
- Suodata
travel_wishlistniin, että mukaan otetaan vain kohteet, joissa maa on"Japan". - Tallenna tuloksena syntyvä sanakirja muuttujaan
japanese_destinations.
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme