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)

Respuesta :

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)

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.

Ver imagen mahamnasir
Ver imagen mahamnasir