Summation of elements in list can be performed using many inbuilt function. Normal summation functions have many applications in various domains. This article discusses to sum just the first N occurrences of elements matching particular condition.
Method #1 : Naive Method We can sum the elements that are matching condition, after N occurrences of elements have been done and we can stop the operation. Code below demonstrates the same.
Python3
# Python 3 code to demonstrate # Summation of first N matching condition# using Naive Method # initializing listtest_list = [3, 5, 1, 6, 7, 9, 8, 5]# printing original listprint ("The original list is : " + str(test_list))# using Naive Method # Summation of first N matching condition# sums first 3 odd occurrencescounter = 1res = 0for i in test_list: if counter <= 3 and (i % 2 != 0): res = res + i counter = counter + 1# printing resultprint ("The filtered list is : " + str(res)) |
The original list is : [3, 5, 1, 6, 7, 9, 8, 5] The filtered list is : 9
Time Complexity: O(n), where n is the length of the input list.
Auxiliary Space: O(1), as we’re using constant additional space.
Method #2 : Using sum() + list comprehension This is different and elegant way to perform this particular task. It filters out all the numbers that are less than equal N and sums according to condition. This is one liner and preferred method to achieve this task.
Python3
# Python 3 code to demonstrate # Summation of first N matching condition# using sum() + list comprehension# initializing listtest_list = [3, 5, 1, 6, 7, 9, 8, 5]# printing original listprint ("The original list is : " + str(test_list))# using sum() + list comprehension# to sum first N elements matching condition # sum first 3 odd occurrencesres = sum([i for i in test_list if i % 2 != 0][:3])# printing resultprint ("The filtered list is : " + str(res)) |
The original list is : [3, 5, 1, 6, 7, 9, 8, 5] The filtered list is : 9
Time Complexity: O(n) where n is the number of elements in the string list. The sum() + list comprehension is used to perform the task and it takes O(n) time.
Auxiliary Space: O(1) constant additional space is required.
