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
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 |
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 |
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')}
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')}
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)