Tutorial Study Image

Python zip()

The built-in function zip() returns a tuple or a zipped object by aggregating the given iterable, it may have zero or more iterable as its parameter.


zip(*iterables) #where iterable may be list, string, dict etc
 

zip() Parameters:

It may take a single or more iterator as its parameter. The * operator can be used to unzip the list in conjunction with zip().

Parameter Description Required / Optional
iterables can be built-in iterables (like: list, string, dict), or user-defined iterables Required 

zip() Return Value

 The zip() with no arguments, then the result will be a  zipped variable that holds an empty iterator.

Input Return Value
 single iterable tuple having a single element
multiple iterables  tuple having elements from all the iterables

Examples of zip() method in Python

Example 1: How zip() works in Python


number_list = [5, 6, 7]
string_list = ['five', 'six', 'seven']

# No iterables are passed
result = zip()

# Converting iterator to list
result_list = list(result)
print(result_list)

# Two iterables are passed
result = zip(number_list, string_list)

# Converting iterator to set
result_set = set(result)
print(result_set)
 

Output:

[]
{(7, 'seven'), (6, 'six'), (5, 'five')}

Example 2:Different number of iterable elements


numbers_List = [5, 6, 7]
string_list = ['five', 'six']
numbers_tuple = ('FIVE', 'SIX', 'SEVEN', 'EIGHT')

# Notice, the size of numbersList and numbers_tuple is different
result = zip(numbers_List, numbers_tuple)

# Converting to set
result_set = set(result)
print(result_set)

result = zip(numbers_List, string_list, numbers_tuple)

# Converting to set
result_set = set(result)
print(result_set)
 

Output:

{(7, 'SEVEN'), (6, 'SIX'), (5, 'FIVE')}
{(6, 'six', 'SIX'), (5, 'five', 'FIVE')}

Example 3: How to unzip the value using zip()


coordinates = ['x', 'y', 'z']
values = [1, 2, 3]

result = zip(coordinates, values)
result_list = list(result)
print(result_list)

c, v =  zip(*result_list)
print('c =', c)
print('v =', v)
 

Output:

[('x', 1), ('y', 2), ('z', 3)]
c = ('x', 'y', 'z')
v = (1, 2, 3)