Table of Contents
In this tutorial, we will learn about the Python zip() function with the help of examples.
The zip() function takes iterables (can be zero or more), aggregates them in a tuple, and returns it.
Example
languages = ['Java', 'Python', 'JavaScript'] versions = [14, 3, 6] result = zip(languages, versions) print(list(result))
1. Syntax of zip()
The syntax of the zip() function is:
zip(*iterables)
2. zip() Parameters
| Parameter | Description |
|---|---|
iterables | can be built-in iterables (like: list, string, dict), or user-defined iterables |
Recommended Reading: Python Iterators, __iter__ and __next__
3. zip() Return Value
The zip() function returns an iterator of tuples based on the iterable objects.
- If we do not pass any parameter,
zip()returns an empty iterator - If a single iterable is passed,
zip()returns an iterator of tuples with each tuple having only one element. - If multiple iterables are passed,
zip()returns an iterator of tuples with each tuple having elements from all the iterables.
Suppose, two iterables are passed tozip(); one iterable containing three and other containing five elements. Then, the returned iterator will contain three tuples. It’s because the iterator stops when the shortest iterable is exhausted.
4. Example 1: Python zip()
number_list = [1, 2, 3] str_list = ['one', 'two', 'three'] # 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, str_list) # Converting iterator to set result_set = set(result) print(result_set)
Output
[]
{(2, 'two'), (3, 'three'), (1, 'one')}
5. Example 2: Different number of iterable elements
numbersList = [1, 2, 3]
str_list = ['one', 'two']
numbers_tuple = ('ONE', 'TWO', 'THREE', 'FOUR')
# Notice, the size of numbersList and numbers_tuple is different
result = zip(numbersList, numbers_tuple)
# Converting to set
result_set = set(result)
print(result_set)
result = zip(numbersList, str_list, numbers_tuple)
# Converting to set
result_set = set(result)
print(result_set)
Output
{(2, 'TWO'), (3, 'THREE'), (1, 'ONE')}
{(2, 'two', 'TWO'), (1, 'one', 'ONE')}
The * operator can be used in conjunction with zip() to unzip the list.
zip(*zippedList)
6. Example 3: Unzipping the Value Using zip()
coordinate = ['x', 'y', 'z']
value = [3, 4, 5]
result = zip(coordinate, value)
result_list = list(result)
print(result_list)
c, v = zip(*result_list)
print('c =', c)
print('v =', v)
Output
[('x', 3), ('y', 4), ('z', 5)]
c = ('x', 'y', 'z')
v = (3, 4, 5)
Related posts:
Python String lstrip()
Python Program to Copy a File
Python Program to Display Powers of 2 Using Anonymous Function
Python Modules
Python Dictionary get()
Python Program to Capitalize the First Character of a String
Intelligent Projects Using Python - Santanu Pattanayak
Python Statement, Indentation and Comments
Python Program to Print Output Without a Newline
Python String rstrip()
Python String isprintable()
Python hasattr()
Python Tuple
Python next()
Python List copy()
Python bytes()
Python Program to Reverse a Number
Python String translate()
Python Program to Check Armstrong Number
Python Closures
Python Program to Find the Largest Among Three Numbers
Learning scikit-learn Machine Learning in Python - Raul Garreta & Guillermo Moncecchi
Python list()
Python delattr()
Python Variables, Constants and Literals
Machine Learning Applications Using Python - Cases studies form Healthcare, Retail, and Finance - Pu...
Deep Learning in Python - LazyProgrammer
Python strftime()
Python Program to Check Whether a String is Palindrome or Not
Python Program to Get Line Count of a File
Python Program to Check if a Key is Already Present in a Dictionary
Python Set difference()