Zip function in python and how to use it

What is zip() function in python and how to use it :

What is zip() :

The syntax of zip() function is ‘zip(*iterables)’_ that means it will take _multiple iterables as inputs. It makes an iterator aggregating elements from each of the _iterable. _

What it returns :

zip()_ returns an iterator of tuples_. If no argument is passed, it returns an empty iterator._ If only _one argument is passed, it returns an iterator of 1-tuples. i-th tuple contains the _i-th element from each of the _argument sequences or iterables. Iterator stops when _shortest input iterable is exhausted. Following examples will clarify your doubts :_

Example of python zip() with one argument :

#create one list
list = ['one','two','three','four']

#zip the list
zipped_list = zip(list)

#print all the items
for item in zipped_list:
	print(item)

In this program, we have passed one list to _‘zip()’ and printing out the values of the iterator returned. The output is as below :_

('one',)
('two',)
('three',)
('four',)

So, 4 tuples are returned.Let’s try with multiple lists

Example of python zip() with multiple arguments :

#create two lists
list_one = ['one','two','three','four']
list_two = ['1','2','3','4']

#zip both lists
zipped_list = zip(list_one,list_two)

#print all the items
for item in zipped_list:
	print(item)

Output is :

('one', '1')
('two', '2')
('three', '3')
('four', '4')

Similarly, we can zip three lists :

#create three lists
list_one = ['one','two','three','four']
list_two = ['1','2','3','4']
list_three = ['A','B','C','D']

#zip all lists
zipped_list = zip(list_one,list_two,list_three)

#print all the items
for item in zipped_list:
	print(item)

Output :

('one', '1', 'A')
('two', '2', 'B')
('three', '3', 'C')
('four', '4', 'D')

Example of python zip() with different length arguments :

#create three lists
list_one = ['one','two','three','four','five','six','seven']
list_two = ['1','2','3','4','5','6']
list_three = ['A','B','C','D']

#zip all lists
zipped_list = zip(list_one,list_two,list_three)

#print all the items
for item in zipped_list:
	print(item)

In the above example, we have three variables with different length.The output looks like :

('one', '1', 'A')
('two', '2', 'B')
('three', '3', 'C')
('four', '4', 'D')

Not all items are included from the first and second list !_ This is because the iterator stops when the shortest input iterable is exhausted_ . So the number of tuple is same as the __minimum length of the input argument.

Example of python zip() with different type of arguments :

In our previous examples, we used only ’list_’ as argument. But we can also pass different type of arguments to the ’zip()’_ function. Example :__

#create one list and one tuple
my_list = ['one','two','three','four']
my_tuple = ('1','2','3','4')

#zip both arguments
zipped_list = zip(my_list,my_tuple)

#print all the items
for item in zipped_list:
	print(item)

It will print the following output :

('one', '1')
('two', '2')
('three', '3')
('four', '4')

So, output is same as previous.

Unzipping values :

Let’s try to unzip the values after zipping :

#create one list and one tuple
my_list = ['one','two','three','four']
my_tuple = ('1','2','3','4')

#zip both arguments
zipped_list = zip(my_list,my_tuple)

first,second = zip(*zipped_list)

print(first)
print(second)

Output :

('one', 'two', 'three', 'four')
('1', '2', '3', '4')

So, we can unzip the zipped values using the same zip() method and passing the argument containing the zipped values. Only difference is that we need to add _one asterisk(*) before the argument name._

Similar tutorials :

Where is the color and why codevscolor ?

Long story short, I love paintings and I paint on weekends. We(me and my wife) have one Youtube channel. Below is a video that I did recently. If you love this please do subscribe to support us 😊