oursolutionarchitectoursolutionarchitect
  • Python Questions and Answers
  • Python - Programming Examples
  • Python - Quick Guide
  • Python - Useful Resources
  • Python - Discussion
    • Selected Reading
    • Q&A

    Python - Reverse Arrays


    In this chapter, we shall explore the different ways to rearrange the given array in the reverse order of the index. In Python, array is not one of the built-in data types. However, Python's standard library has array module. The array class helps us to create a homogenous collection of string, integer or float types.

    The syntax used for creating array is −

    import array
    obj = array.array(typecode[, initializer])
    

    Let us first create an array consisting of a few objects of int type −

    import array as arr
    a = arr.array('i', [10,5,15,4,6,20,9])
    

    The array class doesn't have any built-in method to reverse array. Hence, we have to use another array. An empty array "b" is declared as follows −

    b = arr.array('i')
    

    Reverse an Array by Traversing Elements in Reverse Order

    Next, we traverse the numbers in array "a" in reverse order, and append each element to the "b" array −

    for i in range(len(a)-1, -1, -1):
    b.append(a[i])
    

    The array "b" now holds numbers from original array in reverse order.

    Example

    Here is the complete code to reverse an array in Python −

    import array as arr
    a = arr.array('i', [10,5,15,4,6,20,9])
    b = arr.array('i')
    for i in range(len(a)-1, -1, -1):
       b.append(a[i])
    print (a, b)
    

    It will produce the following output

    array('i', [10, 5, 15, 4, 6, 20, 9]) array('i', [9, 20, 6, 4, 15, 5, 10])
    

    Reverse an Array Using reverse() Method

    We can also reverse the sequence of numbers in an array using the reverse() method in list class. List is a built-in type in Python.

    We have to first transfer the contents of an array to a list with tolist() method of array class −

    a = arr.array('i', [10,5,15,4,6,20,9])
    b = a.tolist()
    

    We can call the reverse() method now −

    b.reverse()
    

    If we now convert the list back to an array, we get the array with reversed order,

    a = arr.array('i')
    a.fromlist(b)
    

    Example

    Here is the complete code

    from array import array as arr
    a = arr.array('i', [10,5,15,4,6,20,9])
    b = a.tolist()
    b.reverse()
    a = arr.array('i')
    a.fromlist(b)
    print (a)
    

    It will produce the following output

    array('i', [10, 5, 15, 4, 6, 20, 9])