Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Python | Get last element of each sublist

  • Last Updated : 06 May, 2019

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

Examples:

 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning - Basic Level Course

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

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

 
Approach #1 : List comprehension






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

 
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. There is a little trick with extracting last item of list, Instead of using direct zip, use the reversed list iterators.




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

Another way of using zip is to use it with Python map, passing reversed as function.




def Extract(lst):
    return list(list(zip(*map(reversed, lst)))[0])

 
Approach #3 : Using itemgetter()




# 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(-1), lst ))
      
# Driver code
lst = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]
print(Extract(lst))
Output:
[3, 5, 9]



My Personal Notes arrow_drop_up
Recommended Articles
Page :