ну типа есть две коллекции например odds = [1, 3, 5, 7, 9] и evens = [0, 2, 4, 6, 8] тогда zip(evens, odds) вернёт [(0, 1), (2, 3), (4, 5), (6, 7), (8, 9)]
соответственно по такой штуке можно удобно итерироваться, распаковывая элементы кортежа в отдельные переменные. for even, odd in zip(evens, odds): ... здесь в odd всегда будет нечётное, а в even чётное