Python | Combine the first and last items separately in a list



Examples :

  Input:  [[`x`,` y`], [`a`,` b`], [ `m`,` n`]]  Output:  [[`x`,` a`, `m`], [` y`, `b`,` n`]]  Input:  [[1, 2], [3, 4], [5, 6], [7, 8]]  Output:  [[1, 3, 5, 7] , [2, 4, 6, 8]] 

Approach # 1: list comprehension and zip

# Python3 program for merging the first and the last
# elements separately in the list of lists

 

def merge (lst):

 

return [ list (ele) for ele in list ( zip ( * lst) )]

 
# Driver code

lst = [[ `x` , ` y` ], [ `a` , ` b` ], [ `m` , ` n` ]]

print (merge (lst))

Exit:

 [[`x `,` a`, `m`], [` y`, `b`,` n`]] 
Approach # 2 Using the Numpy

array

First convert the given list to a numpy array and then return the transpose of the array and finally convert the array to a list.

# Python3 program to merge first and last
# elements separately in the list of lists

import numpy as np

 

def merge (lst):

arr = np.array (lst)

return arr.T.tolist ()

 
# Driver code

lst = [[ `x` , `y` ], [ ` a` , `b` ], [ ` m` , `n` ]]

print (merge (lst))

Exit:

 [[`x`,` a`, `m`], [` y`, `b`,` n `]]