欢迎访问宙启技术站
智能推送

`sum()`函数的常见用法

发布时间:2023-10-10 04:14:54

sum()函数是Python内置的一个求和函数,常用于对一个可迭代对象进行求和操作。它可以接受不同的参数形式,并且常见的用法有以下几种:

1. 对一个容器进行求和

sum()函数可以直接对一个容器进行求和操作,容器可以是列表、元组、集合等可迭代对象。例如:

   nums = [1, 2, 3, 4, 5]
   result = sum(nums)
   print(result)  # 输出15
   

这种用法非常简单,直接将容器作为sum()函数的参数传入即可。

2. 对一个可迭代对象中的某个属性进行求和

如果可迭代对象中的元素是一个对象,并且对象包含某个属性,我们可以通过传入一个自定义的函数来指定要对哪个属性进行求和。该函数会在每次迭代时调用,并且将迭代的元素作为参数传入。例如:

   class Num:
       def __init__(self, value):
           self.value = value
   
   nums = [Num(1), Num(2), Num(3), Num(4), Num(5)]
   result = sum(nums, key=lambda x: x.value)
   print(result)  # 输出15
   

在这个例子中,每次迭代时sum()函数会调用lambda函数来取得Num对象的value属性,然后再进行求和。

3. 对一个可迭代对象中满足条件的元素进行求和

sum()函数还提供了一个过滤器参数,可以用于对可迭代对象中满足某个条件的元素进行求和。该过滤器参数是一个函数,用于判断元素是否满足特定条件。例如:

   nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
   result = sum(nums, initial=0, where=lambda x: x % 2 == 0)
   print(result)  # 输出30
   

在这个例子中,通过传入lambda函数判断元素是否为偶数,对满足条件的元素进行求和。初始值参数initial用于指定初始求和值,默认为0。

4. 对一个可迭代对象中的多个属性进行求和

如果可迭代对象中的元素是一个对象,并且对象包含多个属性,我们可以通过传入一个自定义的函数来指定要对哪些属性进行求和。这个函数在每次迭代时将会被调用,并且将迭代的元素作为参数传入。例如:

   class Num:
       def __init__(self, value, weight):
           self.value = value
           self.weight = weight
   
   nums = [Num(1, 0.5), Num(2, 0.4), Num(3, 0.3), Num(4, 0.2), Num(5, 0.1)]
   result = sum(nums, key=lambda x: (x.value, x.weight))
   print(result)  # 输出(15, 1.5)
   

在这个例子中,每次迭代时sum()函数会调用lambda函数来取得Num对象的value和weight属性,并对它们进行求和。

总结来说,sum()函数的常见用法包括对容器求和、对可迭代对象中的某个属性求和、对满足条件的元素求和以及对可迭代对象中的多个属性求和。在使用时可以根据实际需求选择相应的用法。