Довольно часто возникает задача, когда необходимо одновременно пройтись по двум спискам. Например, у нас есть два списка:
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()
позволяет более элегантно и эффективно работать с несколькими итерируемыми объектами одновременно.
Добавить комментарий