Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Lijstgedrag in Functions | Functies
Introductie tot Python

Veeg om het menu te tonen

book
Lijstgedrag in Functions

Laten we werken met lijsten binnen functies verkennen. Hoewel het vergelijkbaar is met werken met getallen, zijn er een paar belangrijke details om op te letten.

Lijsten zijn muteerbaar, wat betekent dat alle wijzigingen die aan een lijst binnen een functie worden aangebracht, ook de originele lijst buiten de functie beïnvloeden als deze direct wordt doorgegeven.

Om dit te voorkomen, kun je de methode copy() gebruiken met elk muteerbaar gegevenstype. Door dit te doen, maak je een oppervlakkige kopie van de lijst, waardoor je een duplicaat kunt wijzigen in plaats van het origineel. Dit zorgt ervoor dat wijzigingen binnen de functie geen invloed hebben op de originele lijst.

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

In dit voorbeeld blijft de originele fruits lijst ongewijzigd omdat copy() werd gebruikt. Zonder copy() zou het wijzigen van de lijst binnen de functie ook de originele fruits lijst hebben veranderd.

Taak

Swipe to start coding

Maak een functie om een 10% korting toe te passen op productprijzen boven $2.00, zonder de originele lijst te wijzigen.

  • Definieer een functie apply_discount(prices) die een lijst van prijzen neemt.
  • Maak binnen de functie een kopie van prices en wijs deze toe aan prices_copy.
  • Gebruik een for-lus met index-iteratie (range(len(prices_copy))) om door de gekopieerde lijst te gaan.
  • Als een prijs groter is dan 2.00, pas dan een 10% korting toe.
  • Retourneer de bijgewerkte prices_copy lijst.

Uitvoervereisten

  • De functie moet de nieuwe lijst met verlaagde prijzen retourneren.
  • Print het resultaat met:
    Bijgewerkte productprijzen: <$updated_prices>

Opmerking

Gebruik index-gebaseerde iteratie om ervoor te zorgen dat de lijst correct wordt gewijzigd: for index in range(len(prices)): wijzigt elementen direct, in tegenstelling tot for price in prices:.

Oplossing

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 6. Hoofdstuk 4

Vraag AI

expand
ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

book
Lijstgedrag in Functions

Laten we werken met lijsten binnen functies verkennen. Hoewel het vergelijkbaar is met werken met getallen, zijn er een paar belangrijke details om op te letten.

Lijsten zijn muteerbaar, wat betekent dat alle wijzigingen die aan een lijst binnen een functie worden aangebracht, ook de originele lijst buiten de functie beïnvloeden als deze direct wordt doorgegeven.

Om dit te voorkomen, kun je de methode copy() gebruiken met elk muteerbaar gegevenstype. Door dit te doen, maak je een oppervlakkige kopie van de lijst, waardoor je een duplicaat kunt wijzigen in plaats van het origineel. Dit zorgt ervoor dat wijzigingen binnen de functie geen invloed hebben op de originele lijst.

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

In dit voorbeeld blijft de originele fruits lijst ongewijzigd omdat copy() werd gebruikt. Zonder copy() zou het wijzigen van de lijst binnen de functie ook de originele fruits lijst hebben veranderd.

Taak

Swipe to start coding

Maak een functie om een 10% korting toe te passen op productprijzen boven $2.00, zonder de originele lijst te wijzigen.

  • Definieer een functie apply_discount(prices) die een lijst van prijzen neemt.
  • Maak binnen de functie een kopie van prices en wijs deze toe aan prices_copy.
  • Gebruik een for-lus met index-iteratie (range(len(prices_copy))) om door de gekopieerde lijst te gaan.
  • Als een prijs groter is dan 2.00, pas dan een 10% korting toe.
  • Retourneer de bijgewerkte prices_copy lijst.

Uitvoervereisten

  • De functie moet de nieuwe lijst met verlaagde prijzen retourneren.
  • Print het resultaat met:
    Bijgewerkte productprijzen: <$updated_prices>

Opmerking

Gebruik index-gebaseerde iteratie om ervoor te zorgen dat de lijst correct wordt gewijzigd: for index in range(len(prices)): wijzigt elementen direct, in tegenstelling tot for price in prices:.

Oplossing

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 6. Hoofdstuk 4
Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Onze excuses dat er iets mis is gegaan. Wat is er gebeurd?
some-alt