52.4k views
1 vote
Write a function called unzip that takes as parameter a sequence (list or tuple) called seq of tuples with two elements. The function must return a tuple where the first element is a list with the first members of the seq tuple and the second element is a list with the second members of the seq tuple.

This example clarifies what is required:
Ist =[(1, "one"), (2, "two"), (3, "three")]
tup= unzip(Lst) lst tup
print(tup)
#prints ([1, 2, 3], ['one', two','three'7)

1 Answer

5 votes

Answer:

Here is the function unzip:

def unzip(lst):

result= zip(*lst)

return list(result)

The complete program in Python is given below:

def unzip(lst):

result= zip(*lst)

return list(result)

lst =[(1, "one"), (2, "two"), (3, "three")]

tup= unzip(lst)

print(tup)

Step-by-step explanation:

Here zip() function is used in the unzip function. The return type of zip() function is a zip object. This means the function returns the iterator of tuples. This function can be used as its own inverse by using the * operator.

If you do not want to use zip() function then the above program can also be implemented as following which uses a for loop for elements in the given list (lst). This can make a pair of lists (2 tuple) instead of list of tuples:

def unzip(lst):

output = ([ a for a,b in lst ], [ b for a,b in lst ])

return output

lst =[(1, "one"), (2, "two"), (3, "three")]

tup= unzip(lst)

print(tup)

The programs along with their output are attached.

Write a function called unzip that takes as parameter a sequence (list or tuple) called-example-1
Write a function called unzip that takes as parameter a sequence (list or tuple) called-example-2
User Idmean
by
6.8k points