如何在Python中实现简单的列表函数

时间:2011-11-08 01:27:55

标签: python list

我知道Python有内置列表函数,但我很好奇如何编写一个函数来对列表求和和函数来反转列表。我能够弄清楚如何编写其他列表函数(sortcountindex等),但不是这些,我想其他一些语言没有这些内置函数。

有人可以向我展示这两个函数的Python代码,而不是使用任何其他内置函数吗?

2 个答案:

答案 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