[toc]
Summary: The preferred approach to find the length of any given Python object is to use the len
function and pass the object within the function as an argument. Python will then implicitly call the special __len__
method on the object that was passed.
Problem Statement: Is arr.__len__()
the preferred way to get the length of an array in Python?
Array is not a built-in data type in Python. We have to use lists instead of arrays in Python. We can also create arrays in Python by using third-party libraries like Numpy.
Python provides us with two ways to find the length of an array-
- The
len()
methodlen
is basically a function that is used to get the length of a collection. It calls an object’s__len__
method to operate.__something__
are special attributes and have more than meets the eye. You should avoid using them directly unless absolutely necessary.
size
attribute of the Numoy module.
Having said that, let us dive into our mission-critical question and learn the different ways to calculate the length of an array in Python and also discover the most suitable approach to do so.
βUsing len() Function To Get The Length Of The Array
len()
is a built-in function in Python. The function returns the total number of elements in an iterable object by taking lists, tuples, arrays, or strings as an argument. In our case, it will return the size of the array.
Related Video :
Example:
# Using len to get the length of an array # Given array a = ["orange", "mango", "pear", "apple", "kiwi"] print("The given array", a) b = "5678910" print("The given string", b) # Calculating the length of the array s = len(a) print("The length of the given array is", s) # Calculating the length of string l = len(b) print("The length of the given string is", l)
output:
The given array ['orange', 'mango', 'pear', 'apple', 'kiwi']
The given string 5678910
The length of the given array is 5
The length of the given string is 7
β€ Note: The length of an array is adding one to the highest index of the array. For example, in an array, if the index of the last element is 3, the length of an array will be 4.
Recommended Read: Accessing The Index Of Iterables In Python
βUsing __len__() To Get The Length Of The Array
- When we calculate the length of any object in Python by calling the
len()
function on it,len()
implicitly calls the__len__()
function on the passed object to calculate its length. This means that Python will internally translate thelen(object)
into anobject.__len__()
as Python utilizes duck typing, i.e. Python does not care about what type an object is till it has the proper interface for the situation at hand. Hence, when we call the built-in method-len()
on an object, it is actually calling its internal__len__
method. Now any object can implement this interface, and the methodlen()
will return the answer, even if the object is not conceptually a sequence. Hence, instead of using__len__()
on an object in Python, it is preferred to call thelen()
function on the object.- Thus the bottom line is – it is suggested to use the
len()
method instead of using the__len__()
to maintain consistency in your code.
- Thus the bottom line is – it is suggested to use the
- One more advantage of using the
len()
method over using the__len__()
method is no exceptions. When we pass the object to the len() method, it is assured that no exceptions are being raised during the execution of the call. Hence, the program will continue to run even after the call. This certainty that we have with thelen()
method is also referred to as sanity checks in Python. However, there is no such assurance when we are using the__len__()
method. It is uncertain whether the program will throw or not throw any exceptions when the function call is running. Therefore, it is preferable to use thelen()
method over the__len__()
method when coming to sanity checks of the program or code. - One more thing that we can agree on is that the
len()
method is more readable to call on an object. However, the same is not true when we talk about calling the__len__()
method directly.
βCalculating The Array Length Using Numpy
We can calculate the size of the array by using the size attribute of the Numpy module. The Numpy module in Python facilitates us with various size and shape attributes. size
is a one such built-in attribute from the Numpy module that is used to return the size of an array. We can even calculate the shape of the array using the shape function from the Numpy module.
Examples:
# Importing the numpy module import numpy as np # Given array a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print("The given array", a) # Calculating the length s = a.size print("The length of the given array is", s) # Calculating the shape of the numpy array x = a.shape print("The shape of the given array is: ", x)
Output:
The given array [[1 2 3]
[4 5 6]
[7 8 9]]
The length of the given array is 9
The shape of the given array is: (3, 3)
Conclusion
Thus we have unearthed the answer to our question and it is evident from the discussion that using len()
method and passing the object as an argument to the len method is the preferred approach rather than using arr.__len__()
. I hope this discussion helped you and answered your query. Please stay tuned and subscribe for more interesting discussions.
Authors: Shubham Sayon and Rashi Agarwal
To become a PyCharm master, check out our full course on the Finxter Computer Science Academy available for free for all Finxter Premium Members: