Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
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.
