Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Listojen Käyttäytyminen Funktioissa | Funktiot
Johdatus Pythoniin

bookListojen Käyttäytyminen Funktioissa

Tarkastellaan listojen käsittelyä funktioiden sisällä. Vaikka se muistuttaa numeroiden käsittelyä, on olemassa muutamia tärkeitä yksityiskohtia, jotka on hyvä huomioida.

Listat ovat muokattavia (mutable), eli kaikki muutokset, jotka tehdään listalle funktion sisällä, vaikuttavat myös alkuperäiseen listaan funktion ulkopuolella, jos lista välitetään suoraan.

Tämän estämiseksi voit käyttää copy()-metodia minkä tahansa muokattavan tietotyypin kanssa. Näin luot pintakopion listasta, jolloin voit muokata kopiota alkuperäisen sijaan. Tämä varmistaa, että funktion sisällä tehdyt muutokset eivät vaikuta alkuperäiseen listaan.

1234567891011121314
def add_strawberry(original_list): list_copy = original_list.copy() # Create a copy of the original list list_copy.append("Strawberry") # Modify the copied list return list_copy # Original list fruits = ["Apple", "Banana", "Cherry"] # Call the function new_fruits = add_strawberry(fruits) # Check the results print("Original list:", fruits) # ['Apple', 'Banana', 'Cherry'] print("Modified list:", new_fruits) # ['Apple', 'Banana', 'Cherry', 'Strawberry']
copy

Tässä esimerkissä alkuperäinen fruits-lista pysyy muuttumattomana, koska käytettiin copy()-metodia. Ilman copy()-metodia listan muokkaaminen funktion sisällä olisi muuttanut myös alkuperäistä fruits-listaa.

Tehtävä

Swipe to start coding

Luo funktio, joka soveltaa 10 % alennuksen tuotehintoihin, jotka ylittävät 2,00 $, muuttamatta alkuperäistä listaa.

  • Määrittele funktio apply_discount(prices), joka ottaa vastaan hintalistan.
  • Tee funktion sisällä kopio listasta prices ja tallenna se muuttujaan prices_copy.
  • Käytä for-silmukkaa indeksin avulla (range(len(prices_copy))) käydäksesi kopioitua listaa läpi.
  • Jos hinta on suurempi kuin 2.00, sovella 10 % alennusta.
  • Palauta päivitetty prices_copy-lista.

Tulostusvaatimukset

  • Funktion tulee palauttaa uusi lista, jossa on alennetut hinnat.
  • Tulosta tulos seuraavasti:
    Updated product prices: <$updated_prices>

Huom

Käytä indeksoitua iteraatiota varmistaaksesi, että listan elementit päivittyvät oikein: for index in range(len(prices)): muokkaa alkioita suoraan, toisin kuin for price in prices:.

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 6. Luku 4
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

close

bookListojen Käyttäytyminen Funktioissa

Pyyhkäise näyttääksesi valikon

Tarkastellaan listojen käsittelyä funktioiden sisällä. Vaikka se muistuttaa numeroiden käsittelyä, on olemassa muutamia tärkeitä yksityiskohtia, jotka on hyvä huomioida.

Listat ovat muokattavia (mutable), eli kaikki muutokset, jotka tehdään listalle funktion sisällä, vaikuttavat myös alkuperäiseen listaan funktion ulkopuolella, jos lista välitetään suoraan.

Tämän estämiseksi voit käyttää copy()-metodia minkä tahansa muokattavan tietotyypin kanssa. Näin luot pintakopion listasta, jolloin voit muokata kopiota alkuperäisen sijaan. Tämä varmistaa, että funktion sisällä tehdyt muutokset eivät vaikuta alkuperäiseen listaan.

1234567891011121314
def add_strawberry(original_list): list_copy = original_list.copy() # Create a copy of the original list list_copy.append("Strawberry") # Modify the copied list return list_copy # Original list fruits = ["Apple", "Banana", "Cherry"] # Call the function new_fruits = add_strawberry(fruits) # Check the results print("Original list:", fruits) # ['Apple', 'Banana', 'Cherry'] print("Modified list:", new_fruits) # ['Apple', 'Banana', 'Cherry', 'Strawberry']
copy

Tässä esimerkissä alkuperäinen fruits-lista pysyy muuttumattomana, koska käytettiin copy()-metodia. Ilman copy()-metodia listan muokkaaminen funktion sisällä olisi muuttanut myös alkuperäistä fruits-listaa.

Tehtävä

Swipe to start coding

Luo funktio, joka soveltaa 10 % alennuksen tuotehintoihin, jotka ylittävät 2,00 $, muuttamatta alkuperäistä listaa.

  • Määrittele funktio apply_discount(prices), joka ottaa vastaan hintalistan.
  • Tee funktion sisällä kopio listasta prices ja tallenna se muuttujaan prices_copy.
  • Käytä for-silmukkaa indeksin avulla (range(len(prices_copy))) käydäksesi kopioitua listaa läpi.
  • Jos hinta on suurempi kuin 2.00, sovella 10 % alennusta.
  • Palauta päivitetty prices_copy-lista.

Tulostusvaatimukset

  • Funktion tulee palauttaa uusi lista, jossa on alennetut hinnat.
  • Tulosta tulos seuraavasti:
    Updated product prices: <$updated_prices>

Huom

Käytä indeksoitua iteraatiota varmistaaksesi, että listan elementit päivittyvät oikein: for index in range(len(prices)): muokkaa alkioita suoraan, toisin kuin for price in prices:.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 6. Luku 4
single

single

some-alt