Thursday, November 28, 2024
Google search engine
HomeLanguagesPython | Integer count in Mixed List

Python | Integer count in Mixed List

The lists in python can handle different type of data types in it. The manipulation of such lists is complicated. Sometimes we have a problem in which we need to find the count of integer values in which the list can contain string as a data type i.e heterogeneous. Let’s discuss certain ways in which this can be performed.
Method #1 : Using list comprehension + len() + isinstance() 
This particular problem can be solved by filtering our search of len using the isinstance method, we can filter out the integer value and then can use len function to get required length value.
 

Python3




# Python3 code to demonstrate
# Integer count in Mixed List
# using list comprehension + len() + isinstance()
 
# initializing list
test_list = [3, 'computer', 5, 'Lazyroar', 6, 7]
 
# printing original list
print ("The original list is : " + str(test_list))
 
# using list comprehension + len() + isinstance()
# Integer count in Mixed List
res = len(list(i for i in test_list if isinstance(i, int)))
 
# printing result
print ("The length of integers in list is : " + str(res))


Output

The original list is : [3, 'computer', 5, 'Lazyroar', 6, 7]
The length of integers in list is : 4

The time complexity of the above program is O(n), where n is the length of the input list.

The space complexity of the program is O(1), which is constant. This is because only a few variables are used to store the input list.

Method #2 : Using lambda + map() + len() + isinstance() 
The above problem can also be solved using the lambda function as a map() in the len() along with the isinstance method which performs the task of checking for integer values.
 

Python3




# Python3 code to demonstrate
# Integer count in Mixed List
# using lambda + map() + len() + isinstance()
 
# initializing list
test_list = [3, 'computer', 5, 'Lazyroar', 6, 7]
 
# printing original list
print ("The original list is : " + str(test_list))
 
# using lambda + map() + len() + isinstance()
# Integer count in Mixed List
temp = list(map(lambda i: isinstance(i, int), test_list))
res = len([ele for ele in temp if ele])
 
# printing result
print ("The length of integers in list is : " + str(res))


Output

The original list is : [3, 'computer', 5, 'Lazyroar', 6, 7]
The length of integers in list is : 4

Time Complexity: O(n), where n is the length of the list test_list 
Auxiliary Space: O(1) additional space is not needed

Method #3 : Using type() and len() methods

The above problem can be solved by using type() to check if the type of the element as int, then append that item in a new list and print the size of the new list.

Python3




# Python3 code to demonstrate
# Integer count in Mixed List
 
# initializing list
test_list = [3, 'computer', 5, 'Lazyroar', 6, 7]
 
# printing original list
print("The original list is : " + str(test_list))
 
# Integer count in Mixed List
res = []
for i in test_list:
    if(type(i) is int):
        res.append(i)
x = len(res)
# printing result
print("The length of integers in list is : " + str(x))


Output

The original list is : [3, 'computer', 5, 'Lazyroar', 6, 7]
The length of integers in list is : 4

Time Complexity: O(n*n), where n is the number of elements in the list “test_list”.
Auxiliary Space: O(n), where n is the number of elements in the list “test_list”.

Method #4: Using filter() and len() method
This approach is similar to method 1, but instead of using list comprehension, we use filter() function to filter out the integers.

Python3




# Python3 code to demonstrate
# Integer count in Mixed List
def is_int(val):
  return isinstance(val, int)
# initializing list
test_list = [3, 'computer', 5, 'Lazyroar', 6, 7]
# printing original list
print("The original list is : " + str(test_list))
res = len(list(filter(is_int, test_list)))
# printing result
print("The length of integers in list is : " + str(res))


Output

The original list is : [3, 'computer', 5, 'Lazyroar', 6, 7]
The length of integers in list is : 4

Time Complexity: O(n) where n is the number of elements in the list
Auxiliary Space: O(n) where n is the number of integers in the list

Method #4: Using try and except method.
Algorithm:

  1. Initialize a counter variable res to zero.
  2. Loop through each item i in the list test_list.
  3. For each item i, check if its type is int.
  4. If i is of type int, increment the counter variable res.
  5. Finally, print out the value of the counter variable res as the length of integers in the list.

Python3




test_list = [3, 'computer', 5, 'Lazyroar', 6, 7]
 
try:
    res = 0
    for i in test_list:
        if type(i) == int:
            res += 1
    print("The length of integers in list is : " + str(res))
except Exception as e:
    print("An error occurred: " + str(e))


Output

The length of integers in list is : 4

Time complexity:

The time complexity of this algorithm is O(n), where n is the length of the input list test_list. This is because the algorithm needs to loop through each item in the list once in order to count the number of integers in the list.

Auxiliary Space:

The auxiliary space complexity of this algorithm is O(1) because it only uses a constant amount of additional space to store the counter variable res and the loop variable i. No additional data structures are used to store the input list or the intermediate results, so the space complexity is constant with respect to the input size.

Method #5: Using isdigit()

Approach:

  1. Initialize a variable count to 0.
  2. Loop through the elements in the list using a for loop.
  3. Check if the element is a digit or not using the isdigit() method.
  4. If the element is a digit, increment the count variable by 1.
  5. Return the count variable after the loop ends.

Python3




# Initialize the list
lst = [3, 'computer', 5, 'Lazyroar', 6, 7]
 
# print the list
print("The original list is: ",lst)
 
count = 0
for elem in lst:
    if str(elem).isdigit():
        count += 1
 
# printing result
print("The length of integers in list is :", count)


Output

The original list is:  [3, 'computer', 5, 'Lazyroar', 6, 7]
The length of integers in list is : 4

Time complexity: O(n), where n is the length of the input list.
Space complexity: O(1)

RELATED ARTICLES

Most Popular

Recent Comments