07 Июл 2023
1 мин
2149

Итерация по двум спискам в Python

Довольно часто возникает задача, когда необходимо одновременно пройтись по двум спискам. Например, у нас есть два списка: и требуется вывести каждый

Содержание

Довольно часто возникает задача, когда необходимо одновременно пройтись по двум спискам. Например, у нас есть два списка:

list1 = ['apple', 'banana', 'cherry']
list2 = ['red', 'yellow', 'red']

и требуется вывести каждый элемент из первого списка вместе с соответствующим элементом из второго списка.

Один из способов решить эту задачу — использовать цикл for с индексацией. Пример кода:

for i in range(len(list1)):
    print("fruit: ", list1[i], "color: ", list2[i])

Однако, этот способ считается не совсем ‘pythonic’, то есть, не соответствующим философии языка Python, которая предполагает чистоту и читаемость кода.

Более ‘pythonic’ способ — использовать встроенную функцию zip(), которая позволяет итерироваться одновременно по нескольким итерируемым объектам.

Пример кода:

for fruit, color in zip(list1, list2):
    print("fruit: ", fruit, " | color: ", color)

В этом случае zip() возвращает кортеж из элементов обоих списков, которые затем распаковываются в переменные fruit и color.

Функция zip() останавливает итерацию, как только заканчивается один из списков, поэтому важно, чтобы списки были одинаковой длины, иначе элементы, которые остались в более длинном списке, будут пропущены.

Таким образом, функция zip() позволяет более элегантно и эффективно работать с несколькими итерируемыми объектами одновременно.

Содержание

Добавить комментарий

Определи профессию по рисунку