当前位置: 首页 > 面试题库 >

内置函数sum对sum(list,[])有什么作用?

端木志诚
2023-03-14
问题内容

当我想展开一个列表时,我发现了一种类似下面的方式:

>>> a = [[1, 2], [3, 4], [5, 6]]
>>> a
[[1, 2], [3, 4], [5, 6]]
>>> sum(a, [])
[1, 2, 3, 4, 5, 6]

我不知道这些行中发生了什么,文档说明:

sum(iterable[, start])

资金start和一个项目iterable从左至右并返回总。start默认为0。可迭代的项通常是数字,并且该start值不允许为字符串。

在某些用例中,可以使用替代sum()。连接字符串序列的首选快速方法是调用
''.join(sequence)。要以扩展的精度添加浮点值,请参见math.fsum()。要串联一系列可迭代对象,请考虑使用itertools.chain()

2.3版的新功能。

您不认为开头应该是数字吗?为什么可以[]在这里写?

(sum(a, []))

问题答案:

您不认为开头应该是数字吗?

start 数字,默认情况下;0,根据您引用的文档。因此,当您执行例如:

sum((1, 2))

它被视为0 + 1 + 2等于3并且等于所有人都感到高兴。如果要从其他数字开始,则可以提供该数字:

>>> sum((1, 2), 3)
6

到现在为止还挺好。

但是,您还可以使用其他东西+,例如列表:

>>> ['foo'] + ['bar']
['foo', 'bar']

但是,如果尝试使用sum方法,但期望得到相同的结果,则会得到TypeError

>>> sum((['foo'], ['bar']))

Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    sum((['foo'], ['bar']))
TypeError: unsupported operand type(s) for +: 'int' and 'list'

因为它正在做0 + ['foo'] + ['bar']

要解决此问题,您可以提供自己的startas [],这样它就变得[] + ['foo'] + ['bar']一切都很好。所以回答:

为什么[]可以在这里写?

因为虽然start默认为一个数字,它不 具备 成为一个; 也可以添加其他内容,这对于 与您当前正在执行的 操作 完全一样的 方便。



 类似资料:
  • MariaDB 函数用于返回表达式求和的值。 语法: 数据准备 在数据库中创建一个表,并插入一些数据。参考以下创建语句 - 1. SUM()函数与单表达式 示例: 计算大于的表的总分数。参考以下查询语句 - 执行上面查询语句,得到以下结果 - 2. SUM()函数与DISTINCT子句 可以使用函数的子句来避免重复值的总和。 再插入一条重复的数据 - 当前数据库中的记录如下 - 示例: 执行上面查

  • 问题内容: 是否可以在另一个MySql SUM()函数中使用MySql SUM()函数? 像下面 谢谢 问题答案: 您只需要一个: 或在每个字段上使用:

  • SUM() 函数 SUM() 函数返回数值列的总数。 SQL SUM() 语法SELECT SUM(column_name) FROM table_name; 演示数据库 在本教程中,我们将使用 RUNOOB 样本数据库。 下面是选自 "access_log" 表的数据: mysql> SELECT * FROM access_log; +-----+---------+-------+----

  • Sum 函数示例 此示例使用订单表计算对于送货至英国订单的合计销售额。 此示例调用过程 EnumFields 过程,且可以在 SELECT 语句示例中找到该过程。 Sub SumX() Dim dbs As Database, rst As Recordset ' 在您的计算机中修改此行使其正确指到 Northwind 的路径。 Set dbs = OpenDatabase("Northwind.

  • Sum 函数 返回包含在指定查询字段中一组值的总计。 语法 Sum(expr) 其中 expr 代表一个字符串表达式,它或者标识一个字段,该字段包含要计算的数据;或者是一个表达式,它使用此字段中的数据来执行计算。 expr中的运算对象可能包括一个表字段名,一个常数或一个函数(可能是内在的,也可能是用户自定义的,但不是 SQL 合计函数)。 说明 Sum 函数求字段中值的总和。例如,可用 Sum 函

  • sum

    返回列表中元素的总和。 语法 (Syntax) sum(lst) 参数 (Parameters) Lst - 元素列表。 返回值 (Return Value) 返回列表中元素的总和。 例如 (For example) -module(helloworld). -import(lists,[sum/1]). -export([start/0]). start() -> Lst1 =