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.

Updated on: 2026-03-26T02:54:29+05:30

245 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements