Reversing a List in Python

Posted on Sun 11 October 2015 in Development • Tagged with lists, Python, reversed

Sometimes we need to reverse the order of the elements in a Python list. While there can be many different ways of implementing this task, I found three in particular that I appreciate for different reasons. Let's define first a list of integers that we will reverse later.

l = [1, 2, 3, 4, 5, 6]

List slicing

This method can be a bit obscure at first read, but basically it slices the whole list proceding in the reverse order:

[input]: print l[::-1]
[output]: [6, 5, 4, 3, 2, 1]

Reversed method

We use the reversed method that returns an iterable object and a list comprehension to generate the new list

[input]: print [x for x in reversed(l)]
[output]: [6, 5, 4, 3, 2, 1]

Swapping values in place

This last method is more verbose and it basically divides the list in two parts and swaps the first with sixth, the second with fifth, etc...

[input]:
for i in range(0, len(l) / 2):
    l[i], l[len(l) -1 -i] = l[len(l) -1 -i], l[i]
print l

[output]: [6, 5, 4, 3, 2, 1]