все Python 3Циклыфункция
zip()
итерация
Встроенная функция, объединяющая несколько итерируемых объектов в один. Возвращает кортежи из соответствующих элементов. Останавливается по наименьшему.
Синтаксис
zip(*iterables)
В Python 3 zip() возвращает ленивый итератор, а не список, и исчерпывается после первого прохода — чтобы пройти дважды или обратиться по индексу, оберните его в list(). Идиома zip(*pairs) распаковывает список пар обратно в отдельные последовательности, а на строках матрицы работает как транспонирование.
Примеры
names = ["Анна", "Борис", "Вера"]
scores = [95, 78, 88]
for name, score in zip(names, scores):
print(f"{name}: {score}") # → Анна: 95 / Борис: 78 / Вера: 88
a, b, c = [1, 2], [3, 4], [5, 6]
for x, y, z in zip(a, b, c):
print(x + y + z, end=" ") # → 9 12
print(dict(zip(['a', 'b', 'c'], [1, 2, 3]))) # → {'a': 1, 'b': 2, 'c': 3}
print(list(zip([1, 2, 3], [4, 5]))) # → [(1, 4), (2, 5)] — по короткому
from itertools import zip_longest
print(list(zip_longest([1, 2, 3], [10, 20], fillvalue=0))) # → [(1, 10), (2, 20), (3, 0)]
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности