JavaRush /Курси /Модуль 1: Python Core /Цикли по списку

Цикли по списку

Модуль 1: Python Core
Рівень 5 , Лекція 5
Відкрита

6.1 Цикл for

В Python цикли по елементах списку часто реалізуються за допомогою циклу for. Це один із найбільш часто використовуваних підходів до ітерації по списку, дозволяючи виконати блок коду для кожного елемента у списку.

Основи циклу for

Цикл for у Python проходить по кожному елементу списку, тимчасово присвоюючи значення поточного елемента змінній, вказаній після ключового слова for. Приклад:


fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

Обхід списку в зворотному порядку можна реалізувати за допомогою зрізів:


fruits = ["apple", "banana", "cherry"]
for fruit in fruits[::-1]:
    print(fruit)

6.2 Цикл for з індексами

Крім обходу списку за допомогою класичного for, можна обійти список за допомогою циклу for у поєднанні з функцією range(). Це дозволяє працювати не тільки з самими елементами, але і з їх позиціями, що буває необхідно при виконанні більш складних маніпуляцій з даними.

Основи індексованої ітерації

Для ітерації по списку з доступом до індексу кожного елементу можна використовувати наступний підхід:


my_list = ['a', 'b', 'c', 'd']
for i in range(len(my_list)):
    print(f'Index: {i}, Element: {my_list[i]}')

Переваги використання індексів

Використання індексів у циклах дозволяє не тільки отримувати доступ до кожного елемента, але і змінювати елементи списку на місці. Це особливо корисно, коли потрібно модифікувати список під час ітерації.

Приклад:


my_list = ['a', 'b', 'c', 'd']
for i in range(len(my_list)):
    my_list[i] = my_list[i] * 2

Приклади складних маніпуляцій

З індексами легко реалізовувати алгоритми, які вимагають одночасного доступу до кількох елементів списку, наприклад, для порівняння поточного елементу з попереднім або наступним:

Приклад:


my_list = [3, 5, 2, 9, 4]
for i in range(1, len(my_list)):
    if my_list[i] > my_list[i - 1]:
        print(f'{my_list[i]} is greater than {my_list[i - 1]}')

6.3 Використання функції enumerate()

В Python функція enumerate() надає зручний спосіб ітерації по елементах списку з одночасним доступом до їх індексів. Це особливо корисно, коли необхідно обробляти і індекс, і значення елемента списку в рамках циклу.

Основи функції enumerate()

Функція enumerate() обгортає список у спеціальний об'єкт і повертає ітератор, який продукує кортежі (пари значень), що складаються з індексу і значення елемента:


my_list = ["apple", "banana", "cherry"]
for index, element in enumerate(my_list):
    print(f'Index: {index}, Element: {element}')

Тепер у вас є не тільки елемент, але і його індекс.

Переваги enumerate()

Використання enumerate() робить код більш читабельним і дозволяє уникнути необхідності вручну управляти індексами за допомогою range(len(...)). Це спрощує маніпуляції з елементами списку, такі як зміна, доступ до елементів і виконання умовних перевірок.

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

enumerate() ідеально підходить для задач, де потрібно одночасно змінювати елементи списку або порівнювати елементи з їх індексами:


my_list = ["apple", "banana", "cherry"]
for index, element in enumerate(my_list):
    if index % 2 == 0:
        print(f'Element {element} at even index {index}')

6.4 Цикл while

Ми обговорили for, а тепер давайте поговоримо про цикл while. Цей цикл теж може бути корисним при роботі з елементами списку.

Нагадую, що цикл while починає свою роботу з перевірки умови. Якщо умова істинна, виконується тіло циклу, а потім умова перевіряється знову. Процес повторюється до тих пір, поки умова не стане хибною.

Приклад ітерації по списку

Припустимо, у вас є список чисел, і ви хочете ітерувати через нього, поки не наткнетеся на певне значення:


numbers = [1, 2, 3, 4, 5, -1, 6]
i = 0
while i < len(numbers) and numbers[i] != -1:
    print(numbers[i])
    i += 1

Не дуже відрізняється від циклу for, чи не так? Але є випадки, де нам не потрібно використовувати індекс, щоб працювати з елементами списку. Наприклад, у списку зберігаються деякі завдання, їх потрібно по одному зі списку діставати, виконувати і видаляти зі списку.

Цей код схематично можна було б записати так:


tasks = [1, 2, 3, 4, 5, -1, 6]
while len(tasks) > 0:
    task = tasks.pop()
    print(task)
Коментарі (1)
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ
10 грудня 2025
"За допомогою циклу for замініть усі парні елементи списку на рядок "парне"." Виглядає як елементи а не значення. Тут вимагають перевірити значення на "парність"