Listenverhalten in Funktionen
Untersuchen wir das Arbeiten mit Listen innerhalb von Funktionen. Dies ähnelt der Arbeit mit Zahlen, jedoch gibt es einige wichtige Details zu beachten.
Listen sind veränderbar (mutable), was bedeutet, dass alle Änderungen an einer Liste innerhalb einer Funktion auch die ursprüngliche Liste außerhalb der Funktion beeinflussen, wenn sie direkt übergeben wird.
Um dies zu verhindern, kann die Methode copy() bei jedem veränderbaren Datentyp verwendet werden. Dadurch wird eine flache Kopie der Liste erstellt, sodass Sie eine Kopie statt des Originals verändern. So wird sichergestellt, dass Änderungen innerhalb der Funktion das Original nicht beeinflussen.
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']
In diesem Beispiel bleibt die ursprüngliche Liste fruits unverändert, da copy() verwendet wurde. Ohne copy() hätte eine Änderung der Liste innerhalb der Funktion auch die ursprüngliche Liste fruits verändert.
Swipe to start coding
Erstellen einer Funktion zur Anwendung eines 10%-Rabattes auf Produktpreise über $2.00, ohne die ursprüngliche Liste zu verändern.
- Definition einer Funktion
apply_discount(prices), die eine Liste von Preisen entgegennimmt. - Innerhalb der Funktion eine Kopie von
priceserstellen und dieserprices_copyzuweisen. - Mit einer
for-Schleife und Index-Iteration (range(len(prices_copy))) die kopierte Liste durchlaufen. - Wenn ein Preis größer als
2.00ist, einen 10%-Rabatt anwenden. - Die aktualisierte Liste
prices_copyzurückgeben.
Ausgabebedingungen
- Die Funktion soll die neue Liste mit rabattierten Preisen zurückgeben.
- Das Ergebnis ausgeben mit:
Updated product prices: <$updated_prices>
Hinweis
Verwenden Sie eine indexbasierte Iteration, um sicherzustellen, dass die Liste korrekt verändert wird:
for index in range(len(prices)):verändert Elemente direkt, im Gegensatz zufor price in prices:.
Lösung
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Can you explain the difference between a shallow copy and a deep copy?
What happens if I modify a list inside a function without using copy()?
Can you show more examples of working with mutable data types in functions?
Großartig!
Completion Rate verbessert auf 2.08
Listenverhalten in Funktionen
Swipe um das Menü anzuzeigen
Untersuchen wir das Arbeiten mit Listen innerhalb von Funktionen. Dies ähnelt der Arbeit mit Zahlen, jedoch gibt es einige wichtige Details zu beachten.
Listen sind veränderbar (mutable), was bedeutet, dass alle Änderungen an einer Liste innerhalb einer Funktion auch die ursprüngliche Liste außerhalb der Funktion beeinflussen, wenn sie direkt übergeben wird.
Um dies zu verhindern, kann die Methode copy() bei jedem veränderbaren Datentyp verwendet werden. Dadurch wird eine flache Kopie der Liste erstellt, sodass Sie eine Kopie statt des Originals verändern. So wird sichergestellt, dass Änderungen innerhalb der Funktion das Original nicht beeinflussen.
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']
In diesem Beispiel bleibt die ursprüngliche Liste fruits unverändert, da copy() verwendet wurde. Ohne copy() hätte eine Änderung der Liste innerhalb der Funktion auch die ursprüngliche Liste fruits verändert.
Swipe to start coding
Erstellen einer Funktion zur Anwendung eines 10%-Rabattes auf Produktpreise über $2.00, ohne die ursprüngliche Liste zu verändern.
- Definition einer Funktion
apply_discount(prices), die eine Liste von Preisen entgegennimmt. - Innerhalb der Funktion eine Kopie von
priceserstellen und dieserprices_copyzuweisen. - Mit einer
for-Schleife und Index-Iteration (range(len(prices_copy))) die kopierte Liste durchlaufen. - Wenn ein Preis größer als
2.00ist, einen 10%-Rabatt anwenden. - Die aktualisierte Liste
prices_copyzurückgeben.
Ausgabebedingungen
- Die Funktion soll die neue Liste mit rabattierten Preisen zurückgeben.
- Das Ergebnis ausgeben mit:
Updated product prices: <$updated_prices>
Hinweis
Verwenden Sie eine indexbasierte Iteration, um sicherzustellen, dass die Liste korrekt verändert wird:
for index in range(len(prices)):verändert Elemente direkt, im Gegensatz zufor price in prices:.
Lösung
Danke für Ihr Feedback!
single