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

Python的sum()函数:对列表、元组和字典等对象进行求和

发布时间:2023-05-21 19:41:55

Python是一种高级编程语言,提供了许多方便的函数和方法,其中包括sum()函数。sum()函数是Python内置的一个简单的函数,它允许我们对列表、元组和字典等对象进行求和操作。本文将探讨sum()函数的用途、参数以及实际应用。

一、sum()函数的作用

sum()函数是用来计算一个容器(例如列表、元组、集合等)中数字元素的总和。我们可以使用它来对数值列表求和,也可以对字典中的所有值求和。 这是非常有用的工具,它可以极大地简化我们的代码。

二、syntax(语法)

sum(iterable[, start])  #方括号表示可选参数

参数说明:

iterable:必须是一个可迭代对象,例如:列表、元组、集合、字典。

start:开始相加的位置,可选参数,默认为0。 

三、例子

让我们看看一些具体的例子来解释sum()函数的不同用法。

1. 对列表求和

列表是Python中 的数据结构之一,我们可以使用sum()函数轻松地将它们的数据进行求和。

例如:

list1 = [10, 20, 30, 40, 50]

print(sum(list1))

# output: 150

代码简单明了,仅使用了一行代码即可输出这个列表中所有数字的和。在这里,我们没有指定start值,所以它默认开始于0。

2. 对范围内的数字求和

我们也可以使用sum()函数来对通用的Python工具如range()函数产生的数字进行求和。range()方法生成的是一个数字序列对象,可以进行迭代。以下是一个例子:

print(sum(range(10)))  # 0 + 1 + 2 + 3 + … + 9 = 45

这里,我们将range()函数传递给sum()函数,这将计算所有数字的总和,并在屏幕上输出45。

3. 对元组对象求和

元组是不可变序列的数据结构,它和列表一样用于有序的数据存储。命令运行过程和列表非常相似:

tuple1 = (1, 2, 3, 4, 5)

print(sum(tuple1))

# output: 15

同样简单明了地完成了数值的求和。

4. 对字典值进行求和

我们可以使用sum()函数计算字典中所有值的和。但是,由于字典中包含了键-值对,我们需要先提取所有值,然后再进行求和。以下是示例代码:

dict1 = {'Jack': 30, 'Peter': 40, 'Sara': 50}

print(sum(dict1.values()))

# output: 120

注意,我们使用了values()方法来提取字典中的所有值,这使得我们可以计算所有值的总和。

5. 对列表加权求和

我们可以通过为列表中的每个数字分配不同的权重,从而实现更复杂的加权求和。以下是一个简单的代码示例:

list1 = [10, 20, 30, 40, 50]

weights = [0.1, 0.2, 0.3, 0.1, 0.3]

weighted_sum = sum([x * y for x, y in zip(list1, weights)])

print(weighted_sum)

# output: 29.0

这里,我们使用zip()函数将两个列表打包在一起,然后乘以每个数字的权重,最终计算出总和。结果是一个浮点数,因为我们使用小数值进行权重分配。

6. 对链表求和

除了列表和元组之外,我们还可以对其他容器数据类型执行求和操作。链表是一种常见的数据结构,我们可以使用sum()函数对它们中的数字进行求和。以下是一个示例代码:

import LinkedList

list1 = LinkedList.LinkedList()

list1.insert_at_end(10)

list1.insert_at_end(20)

list1.insert_at_end(30)

list1.insert_at_end(40)

list1.insert_at_end(50)

sum_list = sum(list1)

print(sum_list)

# output: 150

这里,我们使用一个自己定义的链接列表,在这个列表中插入了5个数字。最后,我们将这个链表传递给sum()函数,计算总和并将其输出。需要注意的是,需要自己定义一个链接列表对象,而官方没有内置这个数据结构。

四、总结

sum()函数是Python中非常有用的函数之一,它可以让我们通过一行代码找到任何数字对象的总和。我们可以使用sum()函数来求解列表、元组、范围、字典、链表等容器数据类型中的数字元素的总和,只需要等到请求数据并将其传递给函数即可。请注意,sum()函数仅适用于数字元素的总和,因为如果有字符串等非数字对象,那么将无法执行求和操作。