Ітерація по індексах
У попередньому завданні ви вказали певну кількість елементів для функції range()
. Але що робити, якщо вам потрібно визначити кількість динамічно? Тут стає важливою ітерація за індексами.
Ітерація за індексами є основною технікою в Python, яка дозволяє отримувати доступ та змінювати елементи за їх позиціями у структурах даних, таких як списки або масиви. Це особливо корисно для завдань, які потребують точного контролю над кожним елементом, наприклад, оновлення рівнів запасів або управління даними про продажі в продуктовому магазині.
Подивіться, як Алекс демонструє, як ітерація за індексами може спростити операції в нашому прикладі з продуктовим магазином:
Ітерація за індексами корисна, коли вам потрібно отримати доступ до обох індексу та значення кожного елемента у списку. Коли ми використовуємо range()
з len()
, ми поєднуємо дві функції для створення послідовності чисел, що відповідають індексам елементів списку. Цей метод особливо корисний у циклах, де потрібно отримати доступ або змінити елементи на основі їх позиції.
Наприклад, цей цикл for
отримує доступ до індексу та значення кожного елемента у grocery_list
:
12345678# List of grocery items grocery_list = ["Apples", "Bananas", "Carrots", "Cucumbers"] # Initialize a for loop to iterate over indexes for item in range(len(grocery_list)): print("Index:", item) print("Item:", grocery_list[item]) print("----") # Printing a divider line for clarity
Приклад застосування
Щоб застосувати знижку до списку цін, нам потрібно безпосередньо змінити елементи списку. Використання простого циклу, такого як for cost in prices:
, дасть нам лише копію кожного елемента, а не посилання на фактичний елемент у списку. Зміни, зроблені таким чином, не вплинуть на оригінальний список.
Щоб забезпечити пряме оновлення кожного елемента у списку prices
, ми використовуємо range(len(prices))
для ітерації по індексах. Це дозволяє нам застосувати фактор знижки до кожного елемента:
12345678910111213# List of original prices of grocery items prices = [1.50, 2.00, 0.75, 3.25] # Discount factor (10% off each item) discount_factor = 0.10 # Iterate over the list of prices using range(len()) for cost in range(len(prices)): # Apply the discount by reducing the price prices[cost] -= prices[cost] * discount_factor print(f"New price of item {cost + 1}: ${prices[cost]}") print("Updated prices:", prices)
Примітка
Формула
prices[cost] -= prices[cost] * discount_factor
еквівалентнаprices[cost] = prices[cost] - prices[cost] * discount_factor
. Це віднімає частину оригінальної ціни (визначену знижкою) від неї самої, ефективно застосовуючи знижку.
cost + 1
у операторі друку коригує індекс так, щоб він починався з1
, а не з0
, роблячи його більш зручним для користувача.
Цей метод забезпечує, що оригінальний список prices
безпосередньо оновлюється новими, зниженими цінами, відображаючи зміни негайно у всій програмі, де використовується список prices
.
Swipe to start coding
У цьому завданні ви будете працювати зі списками, що представляють кількість запасів і поставок, щоб оновити рівні інвентаризації. Ви будете використовувати ітерацію за індексами для ефективного оновлення кількості запасів на основі отриманих даних про поставки.
Інструкції до коду
- Вам надано два списки:
stock_items
іshipment_received
. Кожен вкладений список у цих списках містить назву продукту та його кількість. - Використовуйте цикл
for
у поєднанні з функціямиrange()
таlen()
, щоб ітеруватися по спискуstock_items
за індексом. - Для кожного продукту оновіть кількість запасів, додаючи відповідну кількість зі списку
shipment_received
.
Вимоги до виводу
- Для кожного продукту виведіть повідомлення у форматі:
Stock updated for <product_name>: <updated_quantity> units
. - Після оновлення всіх продуктів виведіть остаточні кількості запасів з повідомленням:
Final stock quantities:
. - Відобразіть оновлений список
stock_items
у форматі:Stock Items: <stock_items>
.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 2.17
Ітерація по індексах
Свайпніть щоб показати меню
У попередньому завданні ви вказали певну кількість елементів для функції range()
. Але що робити, якщо вам потрібно визначити кількість динамічно? Тут стає важливою ітерація за індексами.
Ітерація за індексами є основною технікою в Python, яка дозволяє отримувати доступ та змінювати елементи за їх позиціями у структурах даних, таких як списки або масиви. Це особливо корисно для завдань, які потребують точного контролю над кожним елементом, наприклад, оновлення рівнів запасів або управління даними про продажі в продуктовому магазині.
Подивіться, як Алекс демонструє, як ітерація за індексами може спростити операції в нашому прикладі з продуктовим магазином:
Ітерація за індексами корисна, коли вам потрібно отримати доступ до обох індексу та значення кожного елемента у списку. Коли ми використовуємо range()
з len()
, ми поєднуємо дві функції для створення послідовності чисел, що відповідають індексам елементів списку. Цей метод особливо корисний у циклах, де потрібно отримати доступ або змінити елементи на основі їх позиції.
Наприклад, цей цикл for
отримує доступ до індексу та значення кожного елемента у grocery_list
:
12345678# List of grocery items grocery_list = ["Apples", "Bananas", "Carrots", "Cucumbers"] # Initialize a for loop to iterate over indexes for item in range(len(grocery_list)): print("Index:", item) print("Item:", grocery_list[item]) print("----") # Printing a divider line for clarity
Приклад застосування
Щоб застосувати знижку до списку цін, нам потрібно безпосередньо змінити елементи списку. Використання простого циклу, такого як for cost in prices:
, дасть нам лише копію кожного елемента, а не посилання на фактичний елемент у списку. Зміни, зроблені таким чином, не вплинуть на оригінальний список.
Щоб забезпечити пряме оновлення кожного елемента у списку prices
, ми використовуємо range(len(prices))
для ітерації по індексах. Це дозволяє нам застосувати фактор знижки до кожного елемента:
12345678910111213# List of original prices of grocery items prices = [1.50, 2.00, 0.75, 3.25] # Discount factor (10% off each item) discount_factor = 0.10 # Iterate over the list of prices using range(len()) for cost in range(len(prices)): # Apply the discount by reducing the price prices[cost] -= prices[cost] * discount_factor print(f"New price of item {cost + 1}: ${prices[cost]}") print("Updated prices:", prices)
Примітка
Формула
prices[cost] -= prices[cost] * discount_factor
еквівалентнаprices[cost] = prices[cost] - prices[cost] * discount_factor
. Це віднімає частину оригінальної ціни (визначену знижкою) від неї самої, ефективно застосовуючи знижку.
cost + 1
у операторі друку коригує індекс так, щоб він починався з1
, а не з0
, роблячи його більш зручним для користувача.
Цей метод забезпечує, що оригінальний список prices
безпосередньо оновлюється новими, зниженими цінами, відображаючи зміни негайно у всій програмі, де використовується список prices
.
Swipe to start coding
У цьому завданні ви будете працювати зі списками, що представляють кількість запасів і поставок, щоб оновити рівні інвентаризації. Ви будете використовувати ітерацію за індексами для ефективного оновлення кількості запасів на основі отриманих даних про поставки.
Інструкції до коду
- Вам надано два списки:
stock_items
іshipment_received
. Кожен вкладений список у цих списках містить назву продукту та його кількість. - Використовуйте цикл
for
у поєднанні з функціямиrange()
таlen()
, щоб ітеруватися по спискуstock_items
за індексом. - Для кожного продукту оновіть кількість запасів, додаючи відповідну кількість зі списку
shipment_received
.
Вимоги до виводу
- Для кожного продукту виведіть повідомлення у форматі:
Stock updated for <product_name>: <updated_quantity> units
. - Після оновлення всіх продуктів виведіть остаточні кількості запасів з повідомленням:
Final stock quantities:
. - Відобразіть оновлений список
stock_items
у форматі:Stock Items: <stock_items>
.
Рішення
Дякуємо за ваш відгук!
Awesome!
Completion rate improved to 2.17single