Open In App

Python – Count elements in record tuple

Improve
Improve
Like Article
Like
Save
Share
Report

Sometimes, while working with data in form of records, we can have a problem in which we need to find the total element counts of all the records received. This is a very common application that can occur in Data Science domain. Let’s discuss certain ways in which this task can be performed.

Method #1: Using len() + generator expression 

This is the most basic method to achieve solution to this task. In this, we iterate over whole nested lists using generator expression and get the count of elements using len(). 

Python3




# Python3 code to demonstrate working of
# Record elements count
# using len() + generator expression
 
# initialize list
test_list = [(2, 4), (6, 7), (5, 1), (6, 10), (8, 7)]
 
# printing original list
print("The original list : " + str(test_list))
 
# Record elements count
# using len() + generator expression
res = len(list((int(j) for i in test_list for j in i)))
 
# printing result
print("The total count of list is : " + str(res))


Output : 

The original list : [(2, 4), (6, 7), (5, 1), (6, 10), (8, 7)]
The total count of list is : 10

Time Complexity: O(n) where n is the number of elements in the list “test_list”. len() + generator expression performs n number of operations.
Auxiliary Space: O(n), extra space is required where n is the number of elements in the list

Method #2 : Using len() + map() + chain.from_iterable() The combination of above methods can also be used to perform this task. In this, the extension of finding total count is done by the combination of map() and from_iterable(). 

Python3




# Python3 code to demonstrate working of
# Record elements count
# using len() + map() + chain.from_iterable()
from itertools import chain
 
# initialize list
test_list = [(2, 4), (6, 7), (5, 1), (6, 10), (8, 7)]
 
# printing original list
print("The original list : " + str(test_list))
 
# Record elements count
# using len() + map() + chain.from_iterable()
res = len(list((map(int, chain.from_iterable(test_list)))))
 
# printing result
print("The total count of list is : " + str(res))


Output : 

The original list : [(2, 4), (6, 7), (5, 1), (6, 10), (8, 7)]
The total count of list is : 10

Time Complexity: O(n*n), where n is the length of the input list. This is because we’re using len() + map() + chain.from_iterable() which has a time complexity of O(n*n) in the worst case.
Auxiliary Space: O(1), as we’re using constant additional space 

Method #3 : Using extend(),list(),len() methods

Python3




# Python3 code to demonstrate working of
# Record elements count
 
# initialize list
test_list = [(2, 4), (6, 7), (5, 1), (6, 10), (8, 7)]
 
# printing original list
print("The original list : " + str(test_list))
 
res=[]
for i in test_list:
    res.extend(list(i))
# printing result
print("The total count of list is : " + str(len(res)))


Output

The original list : [(2, 4), (6, 7), (5, 1), (6, 10), (8, 7)]
The total count of list is : 10

Time complexity: O(n), where n is the length of the test_list. 
Auxiliary Space: O(n), where n is the length of the test_list. 

Method 4: Using sum() and map()
 

Python3




# Python3 code to demonstrate working of
# Record elements count
# using sum() and map()
 
# initialize list
test_list = [(2, 4), (6, 7), (5, 1), (6, 10), (8, 7)]
 
# printing original list
print("The original list : " + str(test_list))
 
# Record elements count
# using sum() and map()
res = sum(map(len, test_list))
 
# printing result
print("The total count of list is : " + str(res))
#This code is contributed by Edula Vinay Kumar Reddy


Output

The original list : [(2, 4), (6, 7), (5, 1), (6, 10), (8, 7)]
The total count of list is : 10

In this method, we use the built-in sum() function and map() function to iterate over the list and get the length of each tuple, and finally sum up all the lengths using the sum() function.

Time Complexity: O(n) where n is the number of elements in the list
Space Complexity: O(1) as we are only storing a single variable res

METHOD 5:Using loop.

APPROACH:

This program counts the total number of elements present in a list of tuples.

ALGORITHM:

1. Initialize a variable count to 0
2. Loop through each tuple in the list of tuples list1
3. Add the length of each tuple to the count variable
4. Print the value of the count variable

Python3




list1 = [(2, 4), (6, 7), (5, 1), (6, 10), (8, 7)]
 
count = 0
for tup in list1:
    count += len(tup)
 
print(f"The total count of list is: {count}")


Output

The total count of list is: 10

Time Complexity: O(n), where n is the total number of tuples in the list
Space Complexity: O(1), as only one extra variable (count) is used. The space used by the input list is not counted as extra space.



Last Updated : 08 May, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads