我知道Python有内置列表函数,但我很好奇如何编写一个函数来对列表求和和函数来反转列表。我能够弄清楚如何编写其他列表函数(sort
,count
,index
等),但不是这些,我想其他一些语言没有这些内置函数。
有人可以向我展示这两个函数的Python代码,而不是使用任何其他内置函数吗?
答案 0 :(得分:1)
直接来自the Python manual:
>>> def sum(seq):
... def add(x,y): return x+y
... return reduce(add, seq, 0)
>>> sum(range(1, 11))
55
>>> sum([])
0
这可以使用lambda
(Python的匿名函数语法)作为单行(... ish)来完成:
def sum(seq):
return reduce(lambda x, y: x + y, seq, 0)
不想使用reduce
?
def sum(seq):
total = 0
for s in seq:
total += s
return total
答案 1 :(得分:1)
对于列表的总结,你可以这样做:
sum([1, 2, 3, 4])
对于反转列表,这将使用Python的切片返回一个新的反向列表:
[1, 2, 3, 4][::-1]
现在,如果您不想使用内置函数:
def sum(lst):
s = 0
for e in lst:
s += e
return s
def reverse(lst):
l = []
for e in lst:
l = [e] + l
return l