Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Listbeteende i Funktioner | Funktioner
Introduktion till Python

Svep för att visa menyn

book
Listbeteende i Funktioner

Låt oss utforska arbete med listor inuti funktioner. Även om det liknar arbete med tal finns det några viktiga detaljer att tänka på.

Listor är muterbara, vilket innebär att alla ändringar som görs på en lista inuti en funktion också påverkar den ursprungliga listan utanför funktionen om den skickas direkt.

För att förhindra detta kan du använda metoden copy() med alla muterbara datatyper. På så sätt skapar du en ytlig kopia av listan, vilket gör att du kan ändra en dubblett istället för originalet. Detta säkerställer att ändringar som görs inom funktionen inte påverkar den ursprungliga listan.

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

I det här exemplet förblir den ursprungliga listan fruits oförändrad eftersom copy() användes. Utan copy() skulle en ändring av listan inuti funktionen även ha ändrat den ursprungliga listan fruits.

Uppgift

Swipe to start coding

Skapa en funktion som tillämpar 10 % rabatt på produktpriser över 2,00 $, utan att ändra den ursprungliga listan.

  • Definiera en funktion apply_discount(prices) som tar en lista med priser.
  • Gör en kopia av prices inuti funktionen och tilldela den till prices_copy.
  • Använd en for-loop med indexbaserad iteration (range(len(prices_copy))) för att gå igenom den kopierade listan.
  • Om ett pris är större än 2.00, tillämpa 10 % rabatt.
  • Returnera den uppdaterade listan prices_copy.

Utmatningskrav

  • Funktionen ska returnera den nya listan med rabatterade priser.
  • Skriv ut resultatet med:
    Uppdaterade produktpriser: <$updated_prices>

Obs

Använd indexbaserad iteration för att säkerställa att listan modifieras korrekt: for index in range(len(prices)): ändrar elementen direkt, till skillnad från for price in prices:.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 6. Kapitel 4
Vi beklagar att något gick fel. Vad hände?

Fråga AI

expand
ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

book
Listbeteende i Funktioner

Låt oss utforska arbete med listor inuti funktioner. Även om det liknar arbete med tal finns det några viktiga detaljer att tänka på.

Listor är muterbara, vilket innebär att alla ändringar som görs på en lista inuti en funktion också påverkar den ursprungliga listan utanför funktionen om den skickas direkt.

För att förhindra detta kan du använda metoden copy() med alla muterbara datatyper. På så sätt skapar du en ytlig kopia av listan, vilket gör att du kan ändra en dubblett istället för originalet. Detta säkerställer att ändringar som görs inom funktionen inte påverkar den ursprungliga listan.

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

I det här exemplet förblir den ursprungliga listan fruits oförändrad eftersom copy() användes. Utan copy() skulle en ändring av listan inuti funktionen även ha ändrat den ursprungliga listan fruits.

Uppgift

Swipe to start coding

Skapa en funktion som tillämpar 10 % rabatt på produktpriser över 2,00 $, utan att ändra den ursprungliga listan.

  • Definiera en funktion apply_discount(prices) som tar en lista med priser.
  • Gör en kopia av prices inuti funktionen och tilldela den till prices_copy.
  • Använd en for-loop med indexbaserad iteration (range(len(prices_copy))) för att gå igenom den kopierade listan.
  • Om ett pris är större än 2.00, tillämpa 10 % rabatt.
  • Returnera den uppdaterade listan prices_copy.

Utmatningskrav

  • Funktionen ska returnera den nya listan med rabatterade priser.
  • Skriv ut resultatet med:
    Uppdaterade produktpriser: <$updated_prices>

Obs

Använd indexbaserad iteration för att säkerställa att listan modifieras korrekt: for index in range(len(prices)): ändrar elementen direkt, till skillnad från for price in prices:.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 6. Kapitel 4
Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Vi beklagar att något gick fel. Vad hände?
some-alt