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