python中的内置sum函数

时间:2013-06-26 09:30:29

标签: python python-2.7 built-in

def sum_elements(l):
    sum = 0
    string = ""
    k = 0
    for i in l:
        if type(i) is int:
            sum = sum + l[k]
            k += 1
        elif type(i)is str:
            string = string + str(l[k])
            k += 1
    print "sum of integers in list" + str(sum)
    print "sum of strings in list" + string

Python有一个内置函数sum来查找列表中所有元素的总和。如果列表是整数sum_elements([1, 2, 3]),它将返回6. sum函数也适用于字符串列表。 sum_elements(["hello", "world"])返回helloworld。我在上面的代码中为sum内置函数编写了一个实现。它有效。

我是Python的新手,我只想知道它是否正确或是否有更好的方法?

是否有可用于python内置函数源代码的链接?

2 个答案:

答案 0 :(得分:4)

from operator import add
def sum_elements(l):
    return reduce(add, l)

答案 1 :(得分:1)

您不需要通过索引访问元素。如果列表不为空且所有元素的类型相同,则可以按如下方式编写代码:

>>> def sum_elements(l):
...     s = l[0]
...     for element in l[1:]:
...         s += element
...     return s
... 
>>> sum_elements([1, 2, 3])
6
>>> sum_elements(['hello', 'world'])
'helloworld'