Listeadfærd i Funktioner
Lad os undersøge arbejde med lister inde i funktioner. Selvom det ligner arbejdet med tal, er der nogle vigtige detaljer at være opmærksom på.
Lister er mutable (kan ændres), hvilket betyder, at ændringer foretaget på en liste inde i en funktion også vil påvirke den oprindelige liste uden for funktionen, hvis den sendes direkte.
For at undgå dette kan du bruge metoden copy() med enhver muterbar datatype. På denne måde opretter du en overfladisk kopi af listen, så du kan ændre en kopi i stedet for originalen. Dette sikrer, at ændringer foretaget i funktionen ikke påvirker den oprindelige liste.
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']
I dette eksempel forbliver den oprindelige fruits-liste uændret, fordi copy() blev brugt. Uden copy() ville ændringer af listen inde i funktionen også have ændret den oprindelige fruits-liste.
Swipe to start coding
Opret en funktion, der anvender en 10% rabat på produktpriser over $2.00, uden at ændre den oprindelige liste.
- Definér en funktion
apply_discount(prices), der tager en liste af priser. - Inde i funktionen laves en kopi af
prices, som tildeles tilprices_copy. - Brug en
for-løkke med indeks-iteration (range(len(prices_copy))) for at gennemgå den kopierede liste. - Hvis en pris er større end
2.00, anvendes en 10% rabat. - Returnér den opdaterede
prices_copy-liste.
Outputkrav
- Funktionen skal returnere den nye liste med de nedsatte priser.
- Udskriv resultatet ved hjælp af:
Updated product prices: <$updated_prices>
Bemærk
Brug indeksbaseret iteration for at sikre, at listen ændres korrekt:
for index in range(len(prices)):ændrer elementerne direkte, i modsætning tilfor price in prices:.
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 2.17
Listeadfærd i Funktioner
Stryg for at vise menuen
Lad os undersøge arbejde med lister inde i funktioner. Selvom det ligner arbejdet med tal, er der nogle vigtige detaljer at være opmærksom på.
Lister er mutable (kan ændres), hvilket betyder, at ændringer foretaget på en liste inde i en funktion også vil påvirke den oprindelige liste uden for funktionen, hvis den sendes direkte.
For at undgå dette kan du bruge metoden copy() med enhver muterbar datatype. På denne måde opretter du en overfladisk kopi af listen, så du kan ændre en kopi i stedet for originalen. Dette sikrer, at ændringer foretaget i funktionen ikke påvirker den oprindelige liste.
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']
I dette eksempel forbliver den oprindelige fruits-liste uændret, fordi copy() blev brugt. Uden copy() ville ændringer af listen inde i funktionen også have ændret den oprindelige fruits-liste.
Swipe to start coding
Opret en funktion, der anvender en 10% rabat på produktpriser over $2.00, uden at ændre den oprindelige liste.
- Definér en funktion
apply_discount(prices), der tager en liste af priser. - Inde i funktionen laves en kopi af
prices, som tildeles tilprices_copy. - Brug en
for-løkke med indeks-iteration (range(len(prices_copy))) for at gennemgå den kopierede liste. - Hvis en pris er større end
2.00, anvendes en 10% rabat. - Returnér den opdaterede
prices_copy-liste.
Outputkrav
- Funktionen skal returnere den nye liste med de nedsatte priser.
- Udskriv resultatet ved hjælp af:
Updated product prices: <$updated_prices>
Bemærk
Brug indeksbaseret iteration for at sikre, at listen ændres korrekt:
for index in range(len(prices)):ændrer elementerne direkte, i modsætning tilfor price in prices:.
Løsning
Tak for dine kommentarer!
single