Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Ітерація за Індексами | Цикли
Вступ до Python

Свайпніть щоб показати меню

book
Ітерація за Індексами

У попередньому завданні ви вказували конкретну кількість елементів для функції 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
copy

Приклад застосування

Щоб застосувати знижку до списку цін, необхідно змінювати елементи списку безпосередньо. Використання простого циклу, такого як 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)
copy

Примітка

  • Формула 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. Результат оновить список stock_items.

  • stock_items і shipment_received — це списки списків, кожен з яких містить назву продукту та його кількість.
  • Використання циклу for з range() і len() для ітерації за індексами stock_items.
  • Для кожного продукту додати кількість з поставки до наявного запасу та оновити значення у stock_items.

Вимоги до виводу

  • Для кожного продукту вивести:
    Stock updated for <product_name>: <updated_quantity> units
  • Після всіх оновлень вивести:
    Final stock quantities:
    Stock Items: <stock_items>

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 5. Розділ 4
Ми дуже хвилюємося, що щось пішло не так. Що трапилося?

Запитати АІ

expand
ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

book
Ітерація за Індексами

У попередньому завданні ви вказували конкретну кількість елементів для функції 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
copy

Приклад застосування

Щоб застосувати знижку до списку цін, необхідно змінювати елементи списку безпосередньо. Використання простого циклу, такого як 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)
copy

Примітка

  • Формула 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. Результат оновить список stock_items.

  • stock_items і shipment_received — це списки списків, кожен з яких містить назву продукту та його кількість.
  • Використання циклу for з range() і len() для ітерації за індексами stock_items.
  • Для кожного продукту додати кількість з поставки до наявного запасу та оновити значення у stock_items.

Вимоги до виводу

  • Для кожного продукту вивести:
    Stock updated for <product_name>: <updated_quantity> units
  • Після всіх оновлень вивести:
    Final stock quantities:
    Stock Items: <stock_items>

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 5. Розділ 4
Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Ми дуже хвилюємося, що щось пішло не так. Що трапилося?
some-alt