Python 3.x sum()函数在python中是如何工作的?

Python 3.x sum()函数在python中是如何工作的?,python-3.x,Python 3.x,但是 如上所述,sum函数将开始值第2个参数与iterable数据结构第1个参数中的项求和。而且,正如评论中提到的,默认情况下,dict可以通过其键进行编辑 因此,您的第二个示例是使用数字dict items键添加60个起始值: >>>60+-10+-20+-30 0 然而,您的第一个示例是尝试将字符串添加到数字中,这不是sum的意图: >>>60+'x'+'y'+'z' 。。。TypeError:不支持+:“int”和“str”的操作数类型 例如,如果您想在dict的值上迭代dict,可以使用

但是

如上所述,sum函数将开始值第2个参数与iterable数据结构第1个参数中的项求和。而且,正如评论中提到的,默认情况下,dict可以通过其键进行编辑

因此,您的第二个示例是使用数字dict items键添加60个起始值:

>>>60+-10+-20+-30

0

然而,您的第一个示例是尝试将字符串添加到数字中,这不是sum的意图:

>>>60+'x'+'y'+'z'

。。。TypeError:不支持+:“int”和“str”的操作数类型

例如,如果您想在dict的值上迭代dict,可以使用values函数。例如:

sum({-10: 'x', -20: 'y', -30: 'z'},60)  
#returns 0
基本上,sum{'x':-10,'y':-20,'z':-30},60将导致错误,因为程序将遇到字符串而不是整数作为键。显然,程序不会向字符串添加60,因为该操作没有任何意义。‘x’+‘y’、‘z’+60的结果是什么

在第二个例子中,sum{10:'x',-20:'y',-30:'z'},60程序只对整数进行迭代。这就是为什么你得到的0是-10,-20,-30+60=0的和。这是有道理的


希望这有帮助

当您迭代字典时,您迭代字典的键。您发布的示例说明了这一点。sum[4],[1,2,3]出现此错误消息的原因:TypeError:只能将list not int连接到list,因为它试图执行[1,2,3]+4操作,这没有意义。我们可以使用sum方法添加两个列表的内容吗;就像[1,2,3]将[4]个结果加到10中一样?不只是使用一次求和,不;您需要组合这些列表,然后对它们求和,例如:sum[1,2,3]+[4].Thanq。这么好的解释。
sum({-10: 'x', -20: 'y', -30: 'z'},60)  
#returns 0
sum({'x':-10,'y':-20,'z':-30}.values(),60)