Skip to content
Related Articles

Related Articles

Python | Summation of first N matching condition

View Discussion
Improve Article
Save Article
Like Article
  • Last Updated : 27 Dec, 2019

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.




# Python 3 code to demonstrate 
# Summation of first N matching condition
# using Naive Method 
  
# initializing list
test_list = [3, 5, 1, 6, 7, 9, 8, 5]
  
# printing original list
print ("The original list is : " + str(test_list))
  
# using Naive Method 
# Summation of first N matching condition
# sums first 3 odd occurrences
counter = 1
res = 0
for i in test_list:
    if counter <= 3 and (i % 2 != 0):
        res = res + i
        counter = counter + 1
  
# printing result
print ("The filtered list is : " + str(res))

Output :

The original list is : [3, 5, 1, 6, 7, 9, 8, 5]
The filtered list is : 9

 

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.




# Python 3 code to demonstrate 
# Summation of first N matching condition
# using sum() + list comprehension
  
# initializing list
test_list = [3, 5, 1, 6, 7, 9, 8, 5]
  
# printing original list
print ("The original list is : " + str(test_list))
  
# using sum() + list comprehension
# to sum first N elements matching condition 
# sum first 3 odd occurrences
res = sum([i for i in test_list if i % 2 != 0][:3])
  
# printing result
print ("The filtered list is : " + str(res))

Output :

The original list is : [3, 5, 1, 6, 7, 9, 8, 5]
The filtered list is : 9

My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!