Listojen 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.
1234567891011121314def 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']
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.
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
pricesja tallenna se muuttujaanprices_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 kuinfor price in prices:.
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 2.17
Listojen 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.
1234567891011121314def 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']
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.
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
pricesja tallenna se muuttujaanprices_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 kuinfor price in prices:.
Ratkaisu
Kiitos palautteestasi!
single