Python - How To Tuple Comprehension in Python

ID : 518

viewed : 148

Tags : PythonPython Tuple

vote vote

99

Python programming language has a straightforward and easy-to-understand syntax. The syntax is so simple that one can quickly write one-liner codes with Python. One such feature is list iteration or list comprehension. We can iterate over a list and return a new list with squares of list elements quickly by doing this [i ** 2 for i in [1, 2, 3, 4, 5, 6, 7]]. The same applies to dictionaries; they can also be iterated over in a single line.

Python has various linear data structures such as lists, tuples, etc. The list comprehension shown above does not apply to tuples. This means we can’t perform (i ** 2 for i in (1, 2, 3, 4, 5, 6, 7)). This will throw an error. If this is not possible, how do we perform tuple comprehension in a single line in Python? This article will talk about the same.

Tuple Comprehension in Python

One can perform tuple comprehension in Python using the following syntax.

x = tuple(i for i in (1, 2, 3, 4, 5, 6, 7)) print(x) print(type(x)) y = tuple(i ** 2 for i in (1, 2, 3, 4, 5, 6, 7)) print(y) print(type(y)) 

Output:

(1, 2, 3, 4, 5, 6, 7) <class 'tuple'> (1, 4, 9, 16, 25, 36, 49) <class 'tuple'> 

Python 3.5 came up with a new way to perform tuple comprehension. It was using the process of unpacking. We can use * to perform unpacking. Refer to the following code for the same.

x = *(i for i in [1, 2, 3, 4, 5, 6, 7]), # Notice the comma (,) at the end print(x) print(type(x)) 

Output:

(1, 2, 3, 4, 5, 6, 7) <class 'tuple'> 

Do note that this syntax is equivalent to writing x = tuple([i for i in [1, 2, 3, 4, 5, 6, 7]]).

x = tuple([i for i in [1, 2, 3, 4, 5, 6, 7]]) print(x) print(type(x)) 

Output:

(1, 2, 3, 4, 5, 6, 7) <class 'tuple'> 

  • Related HOW TO?