Поведінка Списків у Функціях
Дослідимо роботу зі списками всередині функцій. Це схоже на роботу з числами, але існують деякі важливі особливості.
Списки є змінюваними (mutable), тобто будь-які зміни списку всередині функції також впливають на оригінальний список поза функцією, якщо його передано напряму.
Щоб цього уникнути, можна скористатися методом copy()
для будь-якого змінюваного типу даних. Таким чином створюється поверхнева копія списку, що дозволяє змінювати дублікат, а не оригінал. Це гарантує, що зміни у функції не вплинуть на оригінальний список.
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']
У цьому прикладі оригінальний список fruits
залишається незмінним, оскільки було використано copy()
. Без copy()
зміни списку всередині функції також змінили б оригінальний список fruits
.
Swipe to start coding
Створення функції для застосування 10% знижки до цін на товари понад $2.00 без зміни початкового списку.
- Визначити функцію
apply_discount(prices)
, яка приймає список цін. - Усередині функції створити копію списку
prices
та присвоїти її зміннійprices_copy
. - Використати цикл
for
з ітерацією за індексом (range(len(prices_copy))
) для проходження по копії списку. - Якщо ціна перевищує
2.00
, застосувати 10% знижку. - Повернути оновлений список
prices_copy
.
Вимоги до виводу
- Функція повинна повертати новий список із цінами зі знижкою.
- Вивести результат за допомогою:
Updated product prices: <$updated_prices>
Примітка
Використовуйте ітерацію за індексом для коректної модифікації списку:
for index in range(len(prices)):
змінює елементи напряму, на відміну відfor price in prices:
.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 2.17
Поведінка Списків у Функціях
Свайпніть щоб показати меню
Дослідимо роботу зі списками всередині функцій. Це схоже на роботу з числами, але існують деякі важливі особливості.
Списки є змінюваними (mutable), тобто будь-які зміни списку всередині функції також впливають на оригінальний список поза функцією, якщо його передано напряму.
Щоб цього уникнути, можна скористатися методом copy()
для будь-якого змінюваного типу даних. Таким чином створюється поверхнева копія списку, що дозволяє змінювати дублікат, а не оригінал. Це гарантує, що зміни у функції не вплинуть на оригінальний список.
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']
У цьому прикладі оригінальний список fruits
залишається незмінним, оскільки було використано copy()
. Без copy()
зміни списку всередині функції також змінили б оригінальний список fruits
.
Swipe to start coding
Створення функції для застосування 10% знижки до цін на товари понад $2.00 без зміни початкового списку.
- Визначити функцію
apply_discount(prices)
, яка приймає список цін. - Усередині функції створити копію списку
prices
та присвоїти її зміннійprices_copy
. - Використати цикл
for
з ітерацією за індексом (range(len(prices_copy))
) для проходження по копії списку. - Якщо ціна перевищує
2.00
, застосувати 10% знижку. - Повернути оновлений список
prices_copy
.
Вимоги до виводу
- Функція повинна повертати новий список із цінами зі знижкою.
- Вивести результат за допомогою:
Updated product prices: <$updated_prices>
Примітка
Використовуйте ітерацію за індексом для коректної модифікації списку:
for index in range(len(prices)):
змінює елементи напряму, на відміну відfor price in prices:
.
Рішення
Дякуємо за ваш відгук!
Awesome!
Completion rate improved to 2.17single