Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Listeforståelser | Liste- og Ordbokforståelser
Python Løkker Veiledning

book
Listeforståelser

Listeforståelser er en kraftig måte å lage nye lister på ved å kombinere løkker og valgfrie betingelser til en enkelt, konsis uttalelse. De gir en mer Pythonisk måte å utføre operasjoner på lister, noe som gjør koden din renere og lettere å lese.

La oss starte med et enkelt eksempel. Du har en travel_wishlist som inneholder byer du vil besøke, hver representert som en nestet liste med navn, land og reisekostnad.

travel_wishlist = [
['Paris', 'France', 2000],
['Tokyo', 'Japan', 3000],
['New York', 'USA', 2500],
['Kyoto', 'Japan', 1500],
['Sydney', 'Australia', 4000]
]

city_names = [] # New empty list
for city in travel_wishlist:
city_names.append(city[0])

print(city_names)
12345678910111213
travel_wishlist = [ ['Paris', 'France', 2000], ['Tokyo', 'Japan', 3000], ['New York', 'USA', 2500], ['Kyoto', 'Japan', 1500], ['Sydney', 'Australia', 4000] ] city_names = [] # New empty list for city in travel_wishlist: city_names.append(city[0]) print(city_names)
copy

Her gjør listeforståelsen den samme jobben i en enkelt linje, noe som gjør den konsis og lesbar.

travel_wishlist = [
['Paris', 'France', 2000],
['Tokyo', 'Japan', 3000],
['New York', 'USA', 2500],
['Kyoto', 'Japan', 1500],
['Sydney', 'Australia', 4000]
]

city_names = [city[0] for city in travel_wishlist]

print(city_names)
1234567891011
travel_wishlist = [ ['Paris', 'France', 2000], ['Tokyo', 'Japan', 3000], ['New York', 'USA', 2500], ['Kyoto', 'Japan', 1500], ['Sydney', 'Australia', 4000] ] city_names = [city[0] for city in travel_wishlist] print(city_names)
copy
  • travel_wishlist er en liste av lister, hvor hver indre liste inneholder bynavn, land og estimert budsjett for en reise;
  • Koden [city[0] for city in travel_wishlist] lager en ny liste ved å hente ut det første elementet (city[0], bynavnet) fra hver indre liste i travel_wishlist.
Oppgave

Swipe to start coding

Du administrerer en travel_wishlist, der hver destinasjon er representert som en liste som inneholder flere detaljer. Målet ditt er å trekke ut kun reisekostnadene fra hver destinasjon og lagre dem separat.

  • Iterer gjennom ønskelisten, og få tilgang til hver destinasjons detaljer.
  • Trekk ut reisekostnaden, som er det tredje elementet i hver destinasjons liste.
  • Lagre de uttrukne kostnadene i en ny liste kalt trip_costs.

Løsning

# Given travel wishlist
travel_wishlist = [['Paris', 'France', 2000],['Tokyo', 'Japan', 3000],['New York', 'USA', 2500],
['Kyoto', 'Japan', 1500],['Rome', 'Italy', 2200],['Sydney', 'Australia', 2800],
['Barcelona', 'Spain', 1900],['London', 'UK', 2600],['Berlin', 'Germany', 2100],
['Dubai', 'UAE', 3500],['Bangkok', 'Thailand', 1800],['Singapore', 'Singapore', 2900],
['Los Angeles', 'USA', 2700],['Cape Town', 'South Africa', 2300],['Venice', 'Italy', 2000],
['Istanbul', 'Turkey', 1750],['Toronto', 'Canada', 2250],['Rio de Janeiro', 'Brazil', 1950],
['Athens', 'Greece', 1850]]

# Extract trip costs using list comprehension
trip_costs = [city[2] for city in travel_wishlist]

# Testing
print('Trip Costs:', trip_costs)
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 1
# Given travel wishlist
travel_wishlist = [['Paris', 'France', 2000],['Tokyo', 'Japan', 3000],['New York', 'USA', 2500],
['Kyoto', 'Japan', 1500],['Rome', 'Italy', 2200],['Sydney', 'Australia', 2800],
['Barcelona', 'Spain', 1900],['London', 'UK', 2600],['Berlin', 'Germany', 2100],
['Dubai', 'UAE', 3500],['Bangkok', 'Thailand', 1800],['Singapore', 'Singapore', 2900],
['Los Angeles', 'USA', 2700],['Cape Town', 'South Africa', 2300],['Venice', 'Italy', 2000],
['Istanbul', 'Turkey', 1750],['Toronto', 'Canada', 2250],['Rio de Janeiro', 'Brazil', 1950],
['Athens', 'Greece', 1850]]

# Extract trip costs using list comprehension
trip_costs = []

# Testing
print('Trip Costs:', trip_costs)
toggle bottom row
some-alt