print(xy'--' + - - - - herewe step over the result of the zip call--that isthe pairs of items pulled from the two lists notice that this for loop again uses the tuple assignment form we met earlier to unpack each tuple in the zip result the first time throughit' as though we ran the assignment statement (xy( the net effect is that we scan both and in our loop we could achieve similar effect with while loop that handles indexing manuallybut it would require more typing and would likely run more slowly than the for/zip approach strictly speakingthe zip function is more general than this example suggests for instanceit accepts any type of sequence (reallyany iterable objectincluding files)and it accepts more than two arguments with three argumentsas in the following exampleit builds list of three-item tuples with items from each sequenceessentially projecting by columns (technicallywe get an -ary tuple for arguments) ( , , )( , , )( , , ( list(zip( )three tuples for three arguments [( )( )( )moreoverzip truncates result tuples at the length of the shortest sequence when the argument lengths differ in the followingwe zip together two strings to pick out characters in parallelbut the result has only as many tuples as the length of the shortest sequences 'abcs 'xyz list(zip( )[(' '' ')(' '' ')(' '' ')truncates at len(shortestmap equivalence in python in python onlythe related built-in map function pairs items from sequences in similar fashion when passed none for its function argumentbut it pads shorter sequences with none if the argument lengths differ instead of truncating to the shortest lengths 'abcs 'xyz map(nones onlypads to len(longest[(' '' ')(' '' ')(' '' ')(none' ')(none' ')(none,' ') while and for loops