2
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 内置函数源代码的链接?

4

2 回答 2

4
from operator import add
def sum_elements(l):
    return reduce(add, l)
于 2014-10-21T12:34:14.437 回答
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'
于 2013-06-26T09:43:50.450 回答