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 att arbeta med listor inuti funktioner. Även om det liknar att arbeta med siffror, finns det några viktiga detaljer att vara medveten om.

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

För att förhindra detta kan du använda metoden copy() med vilken muterbar datatyp som helst. Genom att göra det skapar du en ytlig kopia av listan, vilket gör att du kan modifiera en kopia 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 fruits-listan oförändrad eftersom copy() användes. Utan copy() skulle modifiering av listan inuti funktionen också ha ändrat den ursprungliga fruits-listan.

Uppgift

Swipe to start coding

Skapa en funktion för att tillämpa en 10% rabatt på produktpriser över $2.00, utan att ändra den ursprungliga listan.

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

Utdata krav

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

Notera

Använd indexbaserad iteration för att säkerställa att listan modifieras korrekt: for index in range(len(prices)): modifierar element 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
single

single

Fråga AI

expand

Fråga AI

ChatGPT

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

close

Awesome!

Completion rate improved to 2.17

book
Listbeteende i Funktioner

Låt oss utforska att arbeta med listor inuti funktioner. Även om det liknar att arbeta med siffror, finns det några viktiga detaljer att vara medveten om.

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

För att förhindra detta kan du använda metoden copy() med vilken muterbar datatyp som helst. Genom att göra det skapar du en ytlig kopia av listan, vilket gör att du kan modifiera en kopia 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 fruits-listan oförändrad eftersom copy() användes. Utan copy() skulle modifiering av listan inuti funktionen också ha ändrat den ursprungliga fruits-listan.

Uppgift

Swipe to start coding

Skapa en funktion för att tillämpa en 10% rabatt på produktpriser över $2.00, utan att ändra den ursprungliga listan.

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

Utdata krav

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

Notera

Använd indexbaserad iteration för att säkerställa att listan modifieras korrekt: for index in range(len(prices)): modifierar element 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!

close

Awesome!

Completion rate improved to 2.17

Svep för att visa menyn

some-alt