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
Selected Reading
Python program to Reverse a range in list
When it is required to reverse a specific range of elements in a list, Python provides several approaches. We can use slicing with the [::-1] operator to reverse a portion of the list while keeping other elements in their original positions.
Method 1: Using Slicing to Reverse a Range
We can reverse elements between specific indices using slicing ?
my_list = [1, 2, 3, 4, 5, 6, 7, 8]
print("Original list:")
print(my_list)
# Reverse elements from index 2 to 5
start, end = 2, 5
my_list[start:end+1] = my_list[start:end+1][::-1]
print("List after reversing range [2:6]:")
print(my_list)
Original list: [1, 2, 3, 4, 5, 6, 7, 8] List after reversing range [2:6]: [1, 2, 6, 5, 4, 3, 7, 8]
Method 2: Using a Function for Range Reversal
A reusable function to reverse any specified range ?
def reverse_range(lst, start, end):
"""Reverse elements in list from start to end index"""
lst[start:end+1] = lst[start:end+1][::-1]
return lst
numbers = [10, 20, 30, 40, 50, 60, 70]
print("Original list:")
print(numbers)
# Reverse elements from index 1 to 4
result = reverse_range(numbers.copy(), 1, 4)
print("After reversing range [1:5]:")
print(result)
Original list: [10, 20, 30, 40, 50, 60, 70] After reversing range [1:5]: [10, 50, 40, 30, 20, 60, 70]
Method 3: Using reversed() with List Replacement
Using the reversed() function for memory-efficient reversal ?
fruits = ['apple', 'banana', 'cherry', 'date', 'elderberry']
print("Original list:")
print(fruits)
# Reverse elements from index 1 to 3
start, end = 1, 3
fruits[start:end+1] = list(reversed(fruits[start:end+1]))
print("After reversing range [1:4]:")
print(fruits)
Original list: ['apple', 'banana', 'cherry', 'date', 'elderberry'] After reversing range [1:4]: ['apple', 'date', 'cherry', 'banana', 'elderberry']
Comparison
| Method | Memory Usage | Readability | Best For |
|---|---|---|---|
Slicing [::-1]
|
Creates copy | High | Simple operations |
| Function approach | Creates copy | High | Reusable code |
reversed() |
Memory efficient | Medium | Large lists |
Conclusion
Use slicing with [::-1] for simple range reversal operations. For reusable code, create a function that handles the slicing logic. The reversed() approach is most memory-efficient for large datasets.
Advertisements
