Python | Unpacking tuples of lists

Examples :

  Input:  ([`a`,` apple`], [`b`,` ball`])  Output:  [`a`,` apple`, `b`,` ball`]  Input:  ([1, `sam`, 75], [2,` bob `, 39], [3,` Kate`, 87])  Output:  [1, `sam`, 75, 2,` bob`, 39, 3, `Kate`, 87]  

Approach # 1: Using reduce()

reduce () — classic list operation, used to apply a specific function passed in its argument to all elements of the list In this case, we used the add function of the operator module which simply adds the given list arguments to an empty list.

# Python3 unpacking program
# tuple of lists

from functools import reduce

import operator

 

def unpackTuple (tup):

 

return ( reduce (operator.add, tup))

 
# Driver code

tup = ([ `a` , `apple` ], [ ` b` , `ball` ])

print (unpackTuple (tup))

Exit :

 [`a`,` apple`, `b`,` ball`] 

Approach # 2 Using Numpy [Alternative Approach # 1]

# Python3 unpacker
# tuple of lists

from functools import reduce

import numpy

 

def unpackTuple (tup):

 

print ( reduce (numpy.append, tup))

 
# Driver code

tup = ( [ `a` , ` apple` ], [ ` b` , `ball` ])

unpackTuple (tup)

Exit :

 [`a`` apple` `b`` ball`] 

Approach # 3 Usage itertools.chain(*iterables)

itertools.chain (* iterables) creates an iterator that returns items from the first iteration until it is exhausted , then moves on to the next iteration until all iterations are exhausted. This makes our job much easier because we can simply add each iteration to an empty list and return it.

Exit :

 [`a`,` apple`, `b`,` ball`] 

# Python3 unpacker
# tuple of lists

from itertools import chain

 

def unpackTuple (tup):

res = []

for i in chain ( * tup):

res.append (i)

 

print (res)

 
# Driver code

tup = ([ ` a` , `apple` ], [ `b` , ` ball` ])

unpackTuple (tup)