Finding the frequency of a given Datatype in a Python tuple

A tuple is a popular data structure in Python that stores multiple elements separated by commas. Finding the frequency of a specific data type means counting how many elements in the tuple belong to that type. Python provides several built-in functions like type(), isinstance(), filter(), and lambda to accomplish this task.

Key Functions

Before exploring the methods, let's understand the core functions used ?

  • type() Returns the exact type of an object
  • isinstance() Checks if an object is an instance of a specific type
  • filter() Filters elements based on a condition
  • lambda Creates anonymous functions for short operations
  • len() Returns the length of an object

Using Simple for Loop

The most straightforward approach uses a counter variable and iterates through each tuple element ?

def count_datatype_frequency(t, d_type):
    count = 0
    for i in t:
        if type(i) == d_type:
            count += 1
    return count

# The tuple elements
my_tup = (5, 8.9, "Box", 3.3, "CAR", 7, 1.0)
# Set the datatype as float
datatype = float

# Calling function
freq = count_datatype_frequency(my_tup, datatype)
print("The frequency of", datatype, ":", freq)
The frequency of <class 'float'> : 3

Using List Comprehension

A more concise approach using list comprehension with the sum() function ?

def count_datatype_frequency(t, datatype):
    return sum(1 for item in t if type(item) == datatype)

my_tup = (1, 'A', 2, 'B', 3.9, 15, 0, 'True')
# Set the datatype as integer
d_type = int

freq = count_datatype_frequency(my_tup, d_type)
print("The total count of integer frequency is", freq)
The total count of integer frequency is 4

Using isinstance() Function

The isinstance() function provides better type checking, especially for inheritance relationships ?

def count_datatype_frequency(t, d):
    cnt = 0
    for i in t:
        if isinstance(i, d):
            cnt += 1
    return cnt

# The input tuple elements
my_tup = (5, 'abc', 2, 4.8, 7.2, 'is', 4.0)
# Set the datatype as string
d_type = str

# Calling function
freq = count_datatype_frequency(my_tup, d_type)
print("The total frequency of string datatype:", freq)
The total frequency of string datatype: 2

Using filter() Function

The filter() function with lambda provides a functional programming approach ?

def count_datatype_frequency(t, d):
    filtered_tuple = filter(lambda item: type(item) == d, t)
    return len(list(filtered_tuple))

# Initialize the tuple 
my_tuple = (5, "PYTHON", 40.0, "JAVA", 5.0, True, False)
d_type = bool

# Calling function
freq = count_datatype_frequency(my_tuple, d_type)
print("The frequency of boolean datatype:", freq)
The frequency of boolean datatype: 2

Comparison

Method Readability Performance Best For
Simple for loop High Good Beginners
List comprehension Medium Best Compact code
isinstance() High Good Type inheritance
filter() + lambda Medium Fair Functional style

Conclusion

Use list comprehension for the most efficient and compact solution. Use isinstance() when dealing with class inheritance. The simple for loop approach offers the best readability for beginners learning Python data type operations.

Updated on: 2026-03-27T12:42:38+05:30

554 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements