How do you count the number of values in a list Python?

Python List count()

In this tutorial, we will learn about the Python List count() method with the help of examples.

The count() method returns the number of times the specified element appears in the list.

Example

# create a list numbers = [2, 3, 5, 2, 11, 2, 7]
# check the count of 2 count = numbers.count(2)
print('Count of 2:', count) # Output: Count of 2: 3

Python count

The count() is a built-in function in Python. It will return the total count of a given element in a list. The count() function is used to count elements on a list as well as a string.

In this Python tutorial, you will learn:

  • Python count
  • Python List count()
  • Example 1: List Count
  • Example 2: Find the count of elements (Duplicates) in a givenlist

Below are the three solutions:

Fastest is using a for loop and storing it in a Dict.

import time from collections import Counter def countElement(a): g = {} for i in a: if i in g: g[i] +=1 else: g[i] =1 return g z = [1,1,1,1,2,2,2,2,3,3,4,5,5,234,23,3,12,3,123,12,31,23,13,2,4,23,42,42,34,234,23,42,34,23,423,42,34,23,423,4,234,23,42,34,23,4,23,423,4,23,4] #Solution 1 - Faster st = time.monotonic() for i in range(1000000): b = countElement(z) et = time.monotonic() print(b) print('Simple for loop and storing it in dict - Duration: {}'.format(et - st)) #Solution 2 - Fast st = time.monotonic() for i in range(1000000): a = Counter(z) et = time.monotonic() print (a) print('Using collections.Counter - Duration: {}'.format(et - st)) #Solution 3 - Slow st = time.monotonic() for i in range(1000000): g = dict([(i, z.count(i)) for i in set(z)]) et = time.monotonic() print(g) print('Using list comprehension - Duration: {}'.format(et - st))

Result

#Solution 1 - Faster
{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 234: 3, 23: 10, 12: 2, 123: 1, 31: 1, 13: 1, 42: 5, 34: 4, 423: 3} Simple for loop and storing it in dict - Duration: 12.032000000000153
#Solution 2 - Fast
Counter({23: 10, 4: 6, 2: 5, 42: 5, 1: 4, 3: 4, 34: 4, 234: 3, 423: 3, 5: 2, 12: 2, 123: 1, 31: 1, 13: 1}) Using collections.Counter - Duration: 15.889999999999418
#Solution 3 - Slow
{1: 4, 2: 5, 3: 4, 4: 6, 5: 2, 34: 4, 423: 3, 234: 3, 42: 5, 12: 2, 13: 1, 23: 10, 123: 1, 31: 1} Using list comprehension - Duration: 33.0

Count elements in a flat list

Suppose we have a list i.e.

# List of strings listOfElems = ['Hello', 'Ok', 'is', 'Ok', 'test', 'this', 'is', 'a', 'test']
To count the elements in this list, we have different ways. Let’s explore them,

Use len() function to get the size of a list

Python provides a inbuilt function to get the size of a sequence i.e.

len(s)
Arguments:
  • s : A sequence like object like, list, string, bytes, tuple etc.

It returns the length of object i.e. count of elements in the object.

Advertisements

Now let’s use this len() function to get the size of a list i.e.

listOfElems = ['Hello', 'Ok', 'is', 'Ok', 'test', 'this', 'is', 'a', 'test'] # Get size of a list using len() length = len(listOfElems) print('Number of elements in list : ', length)
Output:
Number of elements in list : 9
How does len() function works ?

When len(s) function is called, it internally calls the __len__() function of the passed object s. Default sequential containers like list, tuple & string has implementation of __len__() function, that returns the count of elements in that sequence.

So, in our case we passed the list object to the len() function. Which internally called the __len__() of the list object, to fetch the count of elements in list.

Use list.__len__() to count elements in a list

We can directly call the __len__() member function of list to get the size of list i.e.

listOfElems = ['Hello', 'Ok', 'is', 'Ok', 'test', 'this', 'is', 'a', 'test'] # Get size of a list using list.__len__() length = listOfElems.__len__() print('Number of elements in list : ', length)
Output:
Number of elements in list : 9
Although we got the size of list using __len__() function. It is not a recommended way, we should always prefer len() to get the size of list.

(1) Count the Number of Elements in a Python List that Contains Strings

To start with a simple example, let’s create a list that contains 5 names:

names_list = ['Jeff', 'Ben', 'Maria', 'Sophia', 'Rob'] print(names_list)

Run the syntax above, and you’ll get the following list:

['Jeff', 'Ben', 'Maria', 'Sophia', 'Rob']

You can then use the len() function in order to count the number of elements in the list:

names_list = ['Jeff', 'Ben', 'Maria', 'Sophia', 'Rob'] print(len(names_list))

Once you run the code in Python, you’ll get the count of 5.

Let’s extend the list by additional 3 names, and then recount the number of elements:

names_list = ['Jeff', 'Ben', 'Maria', 'Sophia', 'Rob'] names_list.extend(['Laura','Elizabeth','Justin']) print(len(names_list))

You’ll now get the count of 8.