# Python | Get first element of each sublist

• Difficulty Level : Hard
• Last Updated : 10 Jul, 2022

Given a list of lists, write a Python program to extract first element of each sublist in the given list of lists. Examples:

```Input : [[1, 2], [3, 4, 5], [6, 7, 8, 9]]
Output : [1, 3, 6]

Input : [['x', 'y', 'z'], ['m'], ['a', 'b'], ['u', 'v']]
Output : ['x', 'm', 'a', 'u']```

Approach #1 : List comprehension

## Python3

 `# Python3 program to extract first and last``# element of each sublist in a list of lists` `def` `Extract(lst):``    ``return` `[item[``0``] ``for` `item ``in` `lst]``    ` `# Driver code``lst ``=` `[[``1``, ``2``], [``3``, ``4``, ``5``], [``6``, ``7``, ``8``, ``9``]]``print``(Extract(lst))`

Output:

`[1, 3, 6]`

Time Complexity: O(n)

Space Complexity: O(n) (length of the list given as argument)

Approach #2 : Using zip and unpacking(*) operator This method uses zip with * or unpacking operator which passes all the items inside the ‘lst’ as arguments to zip function. Thus, all the first element will become the first tuple of the zipped list. Returning the 0th element will thus, solve the purpose.

## Python3

 `# Python3 program to extract first and last``# element of each sublist in a list of lists` `def` `Extract(lst):``    ``return` `list``(``list``(``zip``(``*``lst))[``0``])``    ` `# Driver code``lst ``=` `[[``1``, ``2``], [``3``, ``4``, ``5``], [``6``, ``7``, ``8``, ``9``]]``print``(Extract(lst))`

Output:

`[1, 3, 6]`

Time Complexity: O(n) (zip function has complexity of O(1) and conversion to list has O(n))

Space Complexity: O(n) (length of the list given as argument)

Another method of using zip is given below:-

## Python3

 `def` `Extract(lst):``    ``return` `list``(``next``(``zip``(``*``lst)))`

Approach #3 : Using itemgetter()

## Python3

 `# Python3 program to extract first and last``# element of each sublist in a list of lists``from` `operator ``import` `itemgetter` `def` `Extract(lst):``    ``return` `list``( ``map``(itemgetter(``0``), lst ))``    ` `# Driver code``lst ``=` `[[``1``, ``2``], [``3``, ``4``, ``5``], [``6``, ``7``, ``8``, ``9``]]``print``(Extract(lst))`

Output:

`[1, 3, 6]`

Time Complexity: O(n) (itemgetter has O(1) and conversion to list O(n))

Space Complexity: O(n)

My Personal Notes arrow_drop_up