In this article we will discuss different ways to Iterate over a python list in reverse order.

Suppose we have a python list of strings i.e.

# List of string
wordList = ['hi', 'hello', 'this', 'that', 'is', 'of']

Now we want to iterate over this list in reverse order( from end to start ) i.e.
of
is
that
this
hello
hi

We don’t want to change the order in existing list, just want to iterate in reverse. Now let’s see how to do this using different techniques,

Iterate over the list in reverse using while loop

Get the size of list and using random and use random access operator [] to access elements in reverse i.e. from (size-1) to 0.

'''
 Iterate over the list in reverse using while loop
'''
# Point i to the last element in list
i = len(wordList) - 1 

# Iterate till 1st element and keep on decrementing i
while i >= 0 :
    print(wordList[i]) 
    i -= 1

Iterate over the list in reverse using for loop and range()

Suppose if wordList had n elements then,

range( len(wordList) - 1, -1, -1)

Will return list of numbers from n to 1

For example, wordList had 5 elements then above specified range() function will return,

4, 3, 2 , 1, 0

Now use that range() function in for loop and use random access operator [] to access elements in reverse i.e.

'''
 Iterate over the list using for loop and range()
'''
for i in range( len(wordList) - 1, -1, -1) :
    print(wordList[i])

Iterate over the list using for loop and reversed()

reversed(wordList)

reversed() function returns an iterator to accesses the given list in the reverse order.

Let’s iterate over that reversed sequence using for loop i.e.

'''
 Iterate over the list using for loop and reversed()
'''
for i in reversed(wordList) :
    print(i)

It will print the wordList in reversed order.

Iterate over the list using List Comprehension and [::-1]

wordList[::-1] 

It will create a temporary revesed list

Let’s use this in List comprehension to iterating over the list in reverse i.e.

'''
 Iterate over the list using List Comprehension and [::-1]
'''
[print (i) for i in wordList[::-1]]

Iterate over the list using List Comprehension and reversed()

'''
 Iterate over the list using List Comprehension and [::-1]
'''
[print (i) for i in reversed(wordList)]

Complete example is as follows,
"""
    Different ways to Iterate over a list in reverse Order
"""

def main():

    # List of string
    wordList = ['hi', 'hello', 'this', 'that', 'is', 'of']
    
    #print the List
    print(wordList)
    
    '''
     Iterate over the list in reverse using while loop
    '''
    # Point i to the last element in list
    i = len(wordList) - 1 
    
    # Iterate till 1st element and keep on decrementing i
    while i >= 0 :
        print(wordList[i]) 
        i -= 1
        
    print("*************")    

    '''
     Iterate over the list using for loop and range()
    '''
    for i in range( len(wordList) - 1, -1, -1) :
        print(wordList[i])
        
    print("*************")    
    
    '''
     Iterate over the list using for loop and reversed()
    '''
    for i in reversed(wordList) :
        print(i)
    
    print("*************")    
    
    '''
     Iterate over the list using List Comprehension and [::-1]
    '''
    [print (i) for i in wordList[::-1]]
    
    print("*************")    

    '''
     Iterate over the list using List Comprehension and [::-1]
    '''
    [print (i) for i in reversed(wordList)]


if __name__ == "__main__":
    main()


Output:
['hi', 'hello', 'this', 'that', 'is', 'of']
of
is
that
this
hello
hi
*************
of
is
that
this
hello
hi
*************
of
is
that
this
hello
hi
*************
of
is
that
this
hello
hi
*************
of
is
that
this
hello
hi

 

Join a list of 2000+ Programmers for latest Tips & Tutorials