Python|前N个匹配条件的求和
可以使用许多内置函数对列表中的元素求和。正态求和函数在各个领域都有很多应用。本文讨论仅对匹配特定条件的元素的前 N 次出现求和。
方法#1:朴素的方法
我们可以对符合条件的元素求和,在元素出现 N 次后,我们可以停止操作。下面的代码演示了相同的内容。
# 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))
输出 :
The original list is : [3, 5, 1, 6, 7, 9, 8, 5]
The filtered list is : 9
方法 #2:使用sum() + list comprehension
这是执行此特定任务的不同而优雅的方式。它过滤掉所有小于等于 N 的数字并根据条件求和。这是完成此任务的一种方法和首选方法。
# 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))
输出 :
The original list is : [3, 5, 1, 6, 7, 9, 8, 5]
The filtered list is : 9