Get last N elements from given list in Python

Getting the last N elements from a Python list is a common operation. Python provides several approaches, with slicing being the most straightforward and itertools.islice() offering memory-efficient alternatives for large datasets.

Using List Slicing

The simplest method uses negative indexing with slicing. The syntax list[-n:] extracts the last N elements ?

Example

days = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']

# Given list
print("Given list:", days)

# Get last 4 elements
n = 4
result = days[-n:]

print(f"The last {n} elements:", result)
Given list: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
The last 4 elements: ['Wed', 'Thu', 'Fri', 'Sat']

Using itertools.islice()

For memory-efficient processing of large lists, islice() combined with reversed() provides an iterator-based approach ?

Example

from itertools import islice

days = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']

# Given list
print("Given list:", days)

# Get last 4 elements using islice
n = 4
result = list(islice(reversed(days), 0, n))
result.reverse()  # Restore original order

print(f"The last {n} elements:", result)
Given list: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
The last 4 elements: ['Wed', 'Thu', 'Fri', 'Sat']

Using deque with maxlen

For scenarios where you only need the last N elements and want to automatically maintain this constraint, deque with maxlen is efficient ?

Example

from collections import deque

days = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']

# Create deque with maxlen to keep only last 4 elements
n = 4
last_n = deque(days, maxlen=n)

print("Given list:", days)
print(f"Last {n} elements:", list(last_n))
Given list: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
Last 4 elements: ['Wed', 'Thu', 'Fri', 'Sat']

Comparison

Method Memory Usage Best For
List Slicing [-n:] Creates copy Small to medium lists
islice() + reversed() Iterator-based Large lists, memory efficiency
deque with maxlen Fixed memory Streaming data, automatic truncation

Conclusion

Use list slicing [-n:] for simplicity with small lists. Choose islice() for memory-efficient processing of large datasets, and deque when you need automatic size management.

Updated on: 2026-03-15T18:07:18+05:30

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements