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 isinstance()
Python String startswith()
Python Program to Sort Words in Alphabetic Order
Python Program to Differentiate Between type() and isinstance()
Python Program to Get the Class Name of an Instance
Python frozenset()
Python Program to Iterate Through Two Lists in Parallel
Python Program to Check Whether a String is Palindrome or Not
Python String strip()
Python Set intersection_update()
Python Program to Find Armstrong Number in an Interval
Python Machine Learning Second Edition - Sebastian Raschka & Vahid Mirjalili
Python Inheritance
Python Program to Find the Largest Among Three Numbers
Python String isalnum()
Python Artificial Intelligence Project for Beginners - Joshua Eckroth
Deep Learning in Python - LazyProgrammer
Python Dictionary items()
Python Program to Check If Two Strings are Anagram
Python String format_map()
Python Program to Check if a Number is Positive, Negative or 0
Python locals()
Python Custom Exceptions
Learning scikit-learn Machine Learning in Python - Raul Garreta & Guillermo Moncecchi
Python RegEx
Python Program to Print Hello world!
Python slice()
Python datetime
Python Program to Merge Mails
Python List append()
Python Program to Create a Countdown Timer
Python Set add()